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