Java容器添加元素

來源:互聯網
上載者:User

標籤:

java.util包中的Arrays和Collections提供了很多方便的方式來往一個Collection中添加元素。Arrays.asList()方法接受一個數組或者用逗號分隔的元素列表,並將其轉換為一個List對象。當然,這個數組中儲存的或者元素列表中的元素可以是任何對象。而Collections.addAll()方法接受一個Collection對象以及一個數組或者用逗號分隔的元素列表,將元素添加到Collection對象中。

// Collection的構造器可以接受另一個Collection來將自己初始化// Arrays.asList()來為其產生輸入Collection<Integer> collection =        new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6));Integer[] moreInts = { 7, 8, 9, 10, };collection.addAll(Arrays.asList(moreInts));// 下面的啟動並執行要快一點 但是不能通過這種方式構造一個CollectionCollections.addAll(collection, 11, 12, 13, 14, 15);Collections.addAll(collection, moreInts);// 以數組建立一個List 但是不能往裡面添加元素 因為數組長度已經固定了// 如果嘗試添加則會導致執行階段錯誤,就是說只有在啟動並執行時候才會報錯List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);//list.add(6);

Arrays.asList()Collections.addAll()使用了可變參數列表,因而比Collection.addAll()成員方法要靈活。

《Thinking In Java》關於Arrays.asList()的部分可能有點過時了,比如在討論Arrays.asList()產生的List的類型的時候。

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<Snow> snow1 = Arrays.asList(                new Crusty(), new Slush(), new Powder()        );        // 可以編譯 產生的List不會是Powder類型而是Snow        List<Snow> snow2 = Arrays.asList(                new Light(), new Heavy()        );        List<Snow> snow3 = new ArrayList<>();        Collections.addAll(snow3, new Light(), new Heavy());        List<Snow> snow4 = Arrays.<Snow>asList(                new Light(), new Heavy()        );    }    }

上面四種方式現在都是可以的,其中snow2在Java8以前是編譯不了的。這樣看的話第四種方式現在就顯得有點多餘了,當然你得使用Java8。

Java容器添加元素

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.