成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

tomlingtm / 2026人閱讀

摘要:方法接受一個對象,以及一個數(shù)組或是一個用逗號分隔的列表,并將元素添加到中。工作的很好,因為他從第一個參數(shù)中了解到了目標類型是什么。

ArrayList.asList() 接受一個數(shù)組或是用逗號分隔的元素列表,也可以用可變參數(shù),然后將其轉(zhuǎn)為一個List對象。

Collections.addAll()方法接受一個Collection對象,以及一個數(shù)組或是一個用逗號分隔的列表,并將元素添加到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)造器可以接受另一個Collection,可以使用Arrays.asList()方法作為構(gòu)造器輸入,但是只能接收Collection,所以不太靈活,一般我們可以采用將Arrays.asList()作為參數(shù),然后在調(diào)用collection.addAll()方法。

也可以這樣:`List list = Arrays.asList(1,2,3,4,5);作為輸出,但是這樣有個問題就是底層是數(shù)組,不能調(diào)整大小,如果要使用listadd()或者list.delete()方法就會出現(xiàn)異常。

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) {
        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()
        );
    }
}

當視圖創(chuàng)建snow2的時候,Arrays.asList()中只有Powder類型,因此它會創(chuàng)建List而不是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

相關(guān)文章

  • Java編程思想》筆記11.持有對象

    摘要:迭代器通常被成為輕量級對象創(chuàng)建它的代價很小。與迭代器可以用于數(shù)組和所有對象,之所以能夠工作,是因為繼承了接口。 點擊進入我的博客 我覺得本章名字改成容器似乎更好理解,持有對象讓人感到一頭霧水我們需要在任意時刻和任意位置創(chuàng)建任意數(shù)量的對象,所以依靠創(chuàng)建命名的引用來持有對象已經(jīng)滿足不了需求。Java可以用數(shù)組和其他容器類來(List、Set、Queue、Map)來解決這個問題,不同的容器...

    newtrek 評論0 收藏0
  • Java 持有對象(11)

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

    summerpxy 評論0 收藏0
  • Java編程思想》--持有對象

    Java是面向?qū)ο蟮恼Z言,對象時Java不可或缺的一個元素,基本數(shù)據(jù)類型有數(shù)組用來存儲,那么對象元素有什么存儲呢,這就是集合,集合是Java非常重要的一塊知識,Java編程思想中的持有對象簡述了集合的相關(guān)知識,下面簡述集合的相關(guān)功能: showImg(/img/bVC153); 集合類我們通常稱為容器 其實容器只有四種:Map、List、Set和Queue 常用的容器有ArrayList、Lin...

    dinfer 評論0 收藏0
  • Java編程思想》-- 持有對象--基本概念

    摘要:概述容器類類庫的用途是保存對象,它分為兩個不同的概念這是一個獨立的而序列必須按照插入的順序保存元素不能有重復元素按照排隊規(guī)則來確定對象產(chǎn)生的順序由鍵值對組成的,允許由鍵查找值,就像字典的目錄,根據(jù)目錄查找內(nèi)容創(chuàng)建接口的不同形式對象時具體的, 概述 Java容器類類庫的用途是保存對象,它分為兩個不同的概念: Collection:這是一個獨立的而序列 List必須按照插入的順序保存...

    mayaohua 評論0 收藏0

發(fā)表評論

0條評論

tomlingtm

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<