亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

《Java編程思想》-- 持有對(duì)象 -- 添加一組元素

tomlingtm / 2058人閱讀

摘要:方法接受一個(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) {
        Collection collection = 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 list = Arrays.asList(1,2,3,4,5);作為輸出,但是這樣有個(gè)問題就是底層是數(shù)組,不能調(diào)整大小,如果要使用listadd()或者list.delete()方法就會(huì)出現(xiàn)異常。

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) {
        List snow1 = 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而不是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

相關(guān)文章

  • Java編程思想》筆記11.持有對(duì)象

    摘要:迭代器通常被成為輕量級(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è)問題,不同的容器...

    newtrek 評(píng)論0 收藏0
  • Java 持有對(duì)象(11)

    摘要:如果一個(gè)程序只包含固定數(shù)量且其生命周期都是已知的對(duì)象,那么這是一個(gè)非常簡(jiǎn)單的程序。 如果一個(gè)程序只包含固定數(shù)量且其生命周期都是已知的對(duì)象,那么這是一個(gè)非常簡(jiǎn)單的程序。 1.泛型和類型安全的容器 通過使用泛型,可以在編譯期防止將錯(cuò)誤類型的對(duì)象放置到容器中. 2.基本概念 Java容器類庫的用途是保存對(duì)象,并將其劃分為兩個(gè)不同的概念:Collection,Map. Collection...

    summerpxy 評(píng)論0 收藏0
  • Java編程思想》--持有對(duì)象

    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...

    dinfer 評(píng)論0 收藏0
  • Java編程思想》-- 持有對(duì)象--基本概念

    摘要:概述容器類類庫的用途是保存對(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必須按照插入的順序保存...

    mayaohua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<