欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中初始化List集合的6種方式詳解

 更新時(shí)間:2023年10月20日 09:38:25   作者:架構(gòu)帥  
這篇文章主要介紹了Java中初始化List集合的6種方式詳解,List 是 Java 開發(fā)中經(jīng)常會(huì)使用的集合,在使用List時(shí)需要進(jìn)行初始化操作,今天我們就來看一下常用的幾種list集合初始化方式,需要的朋友可以參考下

Java初始化List集合

List 是 Java 開發(fā)中經(jīng)常會(huì)使用的集合,你們知道有哪些方式可以初始化一個(gè) List 嗎?這其中不缺乏一些坑,今天棧長(zhǎng)我給大家一一普及一下。

1、常規(guī)方式

List<String> languages = new ArrayList<>();
languages.add("Java");
languages.add("PHP");
languages.add("Python");
System.out.println(languages);

這種就是我們平常用的最多最平常的方式了,沒什么好說的,后面缺失的泛型類型在 JDK 7 之后就可以不用寫具體的類型了,改進(jìn)后會(huì)自動(dòng)推斷類型。

2、Arrays 工具類

List<String> jdks = Arrays.asList("JDK6", "JDK8", "JDK10");
System.out.println(jdks);

這種方式添加的是不可變的 List, 即不能添加、刪除等操作,需要警惕。。

如果要可變,那就使用 ArrayList 再包裝一下,如下面所示。

List<String> numbers = new ArrayList<>(Arrays.asList("1", "2", "3"));
numbers.add("4");
System.out.println(numbers);

包裝一下,這就是可變的 ArrayList 了。

3、Collections 工具類

List<String> apples = Collections.nCopies(3, "apple");
System.out.println(apples);

這種方式添加的是不可變的、復(fù)制某個(gè)元素N遍的工具類,以上程序輸出:

[apple, apple, apple]

老規(guī)則,如果要可變,使用 ArrayList 包裝一遍。

List<String> dogs = new ArrayList<>(Collections.nCopies(3, "dog"));
dogs.add("dog");
System.out.println(dogs);

還有初始化單個(gè)對(duì)象的 List 工具類,這種方式也是不可變的,集合內(nèi)只能有一個(gè)元素,這種也用得很少啊。

List<String> cat = Collections.singletonList("cat");
System.out.println(cat);

還有一個(gè)創(chuàng)建空 List 的工具類,沒有默認(rèn)容量,節(jié)省空間,但不知道實(shí)際工作中有什么鳥用。

List<String> cat = Collections.emptyList("cat");

4、匿名內(nèi)部類

List<String> names = new ArrayList<>() {{
    add("Tom");
    add("Sally");
    add("John");
}};
System.out.println(names);

這種使用了匿名內(nèi)部類的方式,一氣喝成,是不是很高大上?棧長(zhǎng)我曾經(jīng)也使用過這種方式,不過我覺得這種看似高級(jí),實(shí)現(xiàn)也沒什么卵用。

5、JDK8 Stream

List<String> colors = Stream.of("blue", "red", "yellow").collect(toList());
System.out.println(colors);

Stream 是 JDK 8 推出來的新概念,比集合還要更強(qiáng)大,還可以和集合互相轉(zhuǎn)換。

上面同樣使用了靜態(tài)導(dǎo)入:

import static java.util.stream.Collectors.toList;

6、JDK 9 List.of

List<String> cups = List.of("A", "B", "C");
System.out.println(cups);

這是 JDK 9 里面新增的 List 接口里面的靜態(tài)方法,同樣也是不可變的。

在接口中實(shí)現(xiàn)靜態(tài)方法和默認(rèn)方法是 JDK 8 中添加的新特性

到此這篇關(guān)于Java中初始化List集合的6種方式詳解的文章就介紹到這了,更多相關(guān)Java初始化List集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 中遍歷取值異常(Hashtable Enumerator)解決辦法

    java 中遍歷取值異常(Hashtable Enumerator)解決辦法

    這篇文章主要介紹了java 中遍歷取值異常(Hashtable Enumerator)解決辦法的相關(guān)資料,用迭代器取值時(shí)拋出的異常:java.util.NoSuchElementException: Hashtable Enumerator ,需要的朋友可以參考下
    2017-08-08
  • java判斷域名無法訪問自行訪問下一條

    java判斷域名無法訪問自行訪問下一條

    這篇文章主要為大家介紹了java實(shí)現(xiàn)判斷域名無法訪問的時(shí)候自行訪問下一條域名示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Java OSS批量下載并壓縮為ZIP代碼實(shí)例

    Java OSS批量下載并壓縮為ZIP代碼實(shí)例

    這篇文章主要介紹了Java OSS批量下載并壓縮為ZIP代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java中HashMap的常見用法詳解

    Java中HashMap的常見用法詳解

    這篇文章主要介紹了Java中HashMap的常見用法詳解,HashMap是Java中的一個(gè)常用子類,它是java.util.HashMap<k,v>集合,實(shí)現(xiàn)了Map<k,v>接口, HashMap可以存儲(chǔ)鍵值對(duì),通過鍵來快速訪問值,在HashMap中,鍵是唯一的,而值可以重復(fù),需要的朋友可以參考下
    2023-09-09
  • NoHttpResponseException問題排查解決記錄分析

    NoHttpResponseException問題排查解決記錄分析

    這篇文章主要為大家介紹了NoHttpResponseException問題排查解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • 詳解如何在React中逃離閉包陷阱

    詳解如何在React中逃離閉包陷阱

    眾所周知,JavaScript 中的閉包(Closures)一定是這種語(yǔ)言最可怕的特性之一,另外它可能也是最隱蔽的語(yǔ)言特性之一,我們?cè)诰帉?nbsp;React 代碼時(shí)經(jīng)常會(huì)用到它,但是大多數(shù)時(shí)候我們甚至沒有意識(shí)到這一點(diǎn),本文小編將和大家一起深入探討如何在React中逃離閉包陷阱
    2023-09-09
  • Java分形繪制山脈模型

    Java分形繪制山脈模型

    這篇文章主要為大家詳細(xì)介紹了Java分形繪制山脈模型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

    淺談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面

    下面小編就為大家?guī)硪黄獪\談java多態(tài)的實(shí)現(xiàn)主要體現(xiàn)在哪些方面。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-09-09
  • 項(xiàng)目依賴Springboot jar失敗解決方案

    項(xiàng)目依賴Springboot jar失敗解決方案

    這篇文章主要介紹了項(xiàng)目依賴Springboot jar失敗解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java多線程atomic包介紹及使用方法

    Java多線程atomic包介紹及使用方法

    這篇文章主要介紹了Java多線程atomic包介紹及使用方法,涉及原子更新基本類型介紹及代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11

最新評(píng)論