小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)組轉(zhuǎn)集合后使用add方法異常&處理后可以使用add的正確操作

 windxn 2018-02-26

通常很多人為了操作方便喜歡把數(shù)組轉(zhuǎn)換成集合再操作,jdk也剛好有這樣的方法,Arrays.asList ,我們看看他的內(nèi)部實(shí)現(xiàn)

/**
    * Returns a fixed-size list backed by the specified array.  (Changes to
    * the returned list 'write through' to the array.)  This method acts
    * as bridge between array-based and collection-based APIs, in
    * combination with {@link Collection#toArray}.  The returned list is
    * serializable and implements {@link RandomAccess}.
    *
    * <p>This method also provides a convenient way to create a fixed-size
    * list initialized to contain several elements:
    * <pre>
    *     List<String> stooges = Arrays.asList('Larry', 'Moe', 'Curly');
    * </pre>
    *
    * @param <T> the class of the objects in the array
    * @param a the array by which the list will be backed
    * @return a list view of the specified array
    */

   @SafeVarargs
   @SuppressWarnings('varargs')
   public static <T> List<T> asList(T... a) {
       return new ArrayList<>(a);
   }

我們通過方法上面的描述可以得知,通過這樣調(diào)用將數(shù)組轉(zhuǎn)換成集合,返回的集合大小是固定的,因此往里面再添加元素肯定報(bào)錯(cuò)了。

那么解決這個(gè)問題的正確姿勢(shì)是什么,稍微修改下即可:

//錯(cuò)誤姿勢(shì)
List<String> list1 = Arrays.asList('1', '2', '3');
       
List<String> list2 = Arrays.asList('4', '5', '6');
       
list1.addAll(list2);


//正確姿勢(shì)        
List<String> list3 = new ArrayList<>(Arrays.asList('1', '2', '3'));
       
List<String> list4 = new ArrayList<>(Arrays.asList('1', '2', '3'));
       
list3.addAll(list4);


順便回顧下數(shù)組與集合的一些區(qū)別:

  • 數(shù)組聲明了它容納的元素的類型,而集合不聲明。這是由于集合以object形式來存儲(chǔ)它們的元素。

  • 一個(gè)數(shù)組實(shí)例具有固定的大小,不能伸縮。集合則可根據(jù)需要?jiǎng)討B(tài)改變大小。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多