摘要:方法接受一個對象,以及一個數(shù)組或是一個用逗號分隔的列表,并將元素添加到中。工作的很好,因為他從第一個參數(shù)中了解到了目標類型是什么。
ArrayList.asList() 接受一個數(shù)組或是用逗號分隔的元素列表,也可以用可變參數(shù),然后將其轉(zhuǎn)為一個List對象。
Collections.addAll()方法接受一個Collection對象,以及一個數(shù)組或是一個用逗號分隔的列表,并將元素添加到Collection中。
public class AddingGroups { public static void main(String[] args) { Collectioncollection = new ArrayList (Arrays.asList(1,2,3,4,5)); Integer[] moreInts = {6, 7, 8, 9, 10}; collection.addAll(Arrays.asList(moreInts)); Collections.addAll(collection, 11, 12, 13, 14, 15); Collections.addAll(collection, moreInts); for (Integer integer : collection) { System.out.println(integer); } System.out.println("--------------------------------------"); List list = Arrays.asList(16, 17, 18, 19, 20); list.set(1, 99); for (Integer integer : list) { System.out.println(integer); } } }
Collection的構(gòu)造器可以接受另一個Collection,可以使用Arrays.asList()方法作為構(gòu)造器輸入,但是只能接收Collection,所以不太靈活,一般我們可以采用將Arrays.asList()作為參數(shù),然后在調(diào)用collection.addAll()方法。
也可以這樣:`List
Arrays.asList()方法的限制對它產(chǎn)生的List類型做了理想的假設(shè),但是沒有注意到你對它會賦予什么樣的類型,這就會引發(fā)一些問題:
class Snow{} class Powder extends Snow{} class Light extends Powder{} class Heavy extends Powder{} class Crusty extends Snow{} class Slush extends Snow{} public class AsListInference { public static void main(String[] args) { Listsnow1 = Arrays.asList( new Crusty(), new Slush(), new Powder() ); //List snow2 = Arrays.asList( // new Light(), new Heavy() //); List snow3 = new ArrayList (); Collections.addAll(snow3, new Light(), new Heavy()); List snow4 = Arrays. asList( new Light(), new Heavy() ); } }
當視圖創(chuàng)建snow2的時候,Arrays.asList()中只有Powder類型,因此它會創(chuàng)建List
創(chuàng)建snow4的時候就解決了創(chuàng)建snow2的問題,在Arrays.asList()中間岔入了一條線索,他會告訴編譯器對于Arrays.asList()產(chǎn)生的List類型,這就是顯式類型參數(shù)說明。
Collections.addAll()工作的很好,因為他從第一個參數(shù)中了解到了目標類型是什么。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65135.html
摘要:迭代器通常被成為輕量級對象創(chuàng)建它的代價很小。與迭代器可以用于數(shù)組和所有對象,之所以能夠工作,是因為繼承了接口。 點擊進入我的博客 我覺得本章名字改成容器似乎更好理解,持有對象讓人感到一頭霧水我們需要在任意時刻和任意位置創(chuàng)建任意數(shù)量的對象,所以依靠創(chuàng)建命名的引用來持有對象已經(jīng)滿足不了需求。Java可以用數(shù)組和其他容器類來(List、Set、Queue、Map)來解決這個問題,不同的容器...
摘要:如果一個程序只包含固定數(shù)量且其生命周期都是已知的對象,那么這是一個非常簡單的程序。 如果一個程序只包含固定數(shù)量且其生命周期都是已知的對象,那么這是一個非常簡單的程序。 1.泛型和類型安全的容器 通過使用泛型,可以在編譯期防止將錯誤類型的對象放置到容器中. 2.基本概念 Java容器類庫的用途是保存對象,并將其劃分為兩個不同的概念:Collection,Map. Collection...
Java是面向?qū)ο蟮恼Z言,對象時Java不可或缺的一個元素,基本數(shù)據(jù)類型有數(shù)組用來存儲,那么對象元素有什么存儲呢,這就是集合,集合是Java非常重要的一塊知識,Java編程思想中的持有對象簡述了集合的相關(guān)知識,下面簡述集合的相關(guān)功能: showImg(/img/bVC153); 集合類我們通常稱為容器 其實容器只有四種:Map、List、Set和Queue 常用的容器有ArrayList、Lin...
摘要:概述容器類類庫的用途是保存對象,它分為兩個不同的概念這是一個獨立的而序列必須按照插入的順序保存元素不能有重復元素按照排隊規(guī)則來確定對象產(chǎn)生的順序由鍵值對組成的,允許由鍵查找值,就像字典的目錄,根據(jù)目錄查找內(nèi)容創(chuàng)建接口的不同形式對象時具體的, 概述 Java容器類類庫的用途是保存對象,它分為兩個不同的概念: Collection:這是一個獨立的而序列 List必須按照插入的順序保存...
閱讀 2174·2021-11-19 09:58
閱讀 1741·2021-11-15 11:36
閱讀 2896·2019-08-30 15:54
閱讀 3415·2019-08-29 15:07
閱讀 2790·2019-08-26 11:47
閱讀 2864·2019-08-26 10:11
閱讀 2531·2019-08-23 18:22
閱讀 2784·2019-08-23 17:58