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

Java中初始化List的5種方法示例

 更新時間:2018年11月12日 08:39:35   作者:Java填坑之路  
這篇文章主要給大家介紹了關(guān)于Java中初始化List的5種方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或使用java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

List是java重要的數(shù)據(jù)結(jié)構(gòu)之一,我們經(jīng)常接觸到的有ArrayList、Vector和LinkedList三種,他們都繼承來自java.util.Collection接口,類圖如下

Java 中經(jīng)常需要使用到 List,下面簡單介紹幾種常見的初始化方式。

1.構(gòu)造 List 后使用 List.add 初始化

這是最常規(guī)的做法,用起來不太方便。

2.使用 {{}} 雙括號語法

這種方式相對方便了一些。

外層的{}定義了一個 LinkedList 的匿名內(nèi)部類。內(nèi)層的{}的定義了一個實例初始化代碼塊。 這個代碼塊在初始化內(nèi)部類時執(zhí)行。所以這里相當(dāng)于定義了一個匿名內(nèi)部類,并使用add添加元素來初始化。

這種方式有幾個缺點:

使用匿名內(nèi)部類,會有效率上的損失。當(dāng)然在大多數(shù)情況下,這點效率都是可接受的。

靜態(tài)內(nèi)部類持有所在外部類的引用。如果需要將 List 返回給到其他地方使用,可能造成內(nèi)存泄漏。

3.使用 Arrays.asList

這種方式使用了 java.util.Arrays 的靜態(tài)方法。寫法上比之前的兩種都更簡潔,也沒有構(gòu)造匿名內(nèi)部類的效率問題。

但也有幾點需要注意:

Arrays.asList 返回的是 Arrays 的靜態(tài)內(nèi)部類(靜態(tài)內(nèi)部類不持有所在外部類的引用)。

這個內(nèi)部類繼承自 AbstractList,實現(xiàn)了 RandomAccess,內(nèi)部使用了一個數(shù)組來存儲元素。但是不支持增刪元素。這點需要注意。如果只是使用 Arrays.asList 來初始化常量,那么這點就不算什么問題了。

Arrays.asList 的參數(shù)如果是基本類型的數(shù)組時,需要留意返回值可能和你預(yù)期的不同。


這里Arrays.asList(intArray)的返回值是List<int[]>而不是List<Integer>。這一點也算不上問題,只是使用時需要留意。如果能在 Java 中做到盡量使用 List 和 Integer,盡量避免使用 int 等基本類型和[]這種較為底層的數(shù)據(jù)結(jié)構(gòu)即可避免。

雖然本文是在講初始化List,但這里的{{}}雙括號語法同樣可用于初始化Map等其他眾多類型。相對而言,Arrays.asList就只能用于初始化List類型了。

4. 使用 Stream (JDK8)

使用了 JDK8 的 Stream 來初始化。 單純初始化 List,使用 Stream 有點大材小用了。

5. 使用 Lists (JDK9)

這個和 Arrays.asList 一樣簡潔清晰。

總結(jié):

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Java如何簡單快速入門JWT(token生成與驗證)

    Java如何簡單快速入門JWT(token生成與驗證)

    這篇文章主要給大家介紹了關(guān)于Java如何簡單快速入門JWT(token生成與驗證)的相關(guān)資料,JWT是一個加密的字符串,JWT傳輸?shù)男畔⒔?jīng)過了數(shù)字簽名,因此傳輸?shù)男畔⒖梢员或炞C和信任,需要的朋友可以參考下
    2023-12-12
  • java對圖片進(jìn)行壓縮和resize縮放的方法

    java對圖片進(jìn)行壓縮和resize縮放的方法

    本篇文章主要介紹了java對圖片進(jìn)行壓縮和resize調(diào)整的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 詳解Spring Retry實現(xiàn)原理

    詳解Spring Retry實現(xiàn)原理

    這篇文章主要介紹了詳解Spring Retry實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Mybatis如何分割字符串

    Mybatis如何分割字符串

    這篇文章主要介紹了Mybatis如何分割字符串問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java集合教程之Collection實例詳解

    Java集合教程之Collection實例詳解

    集合,或者叫容器,是一個包含多個元素的對象,下面這篇文章主要給大家介紹了關(guān)于Java集合教程之Collection的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • SpringBoot中的static靜態(tài)資源訪問、參數(shù)配置、代碼自定義訪問規(guī)則詳解

    SpringBoot中的static靜態(tài)資源訪問、參數(shù)配置、代碼自定義訪問規(guī)則詳解

    這篇文章主要介紹了SpringBoot的static靜態(tài)資源訪問、參數(shù)配置、代碼自定義訪問規(guī)則,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • SpringBoot實現(xiàn)EMQ設(shè)備的上下線告警

    SpringBoot實現(xiàn)EMQ設(shè)備的上下線告警

    EMQX?的上下線系統(tǒng)消息通知功能在客戶端連接成功或者客戶端斷開連接,需要實現(xiàn)設(shè)備的上下線狀態(tài)監(jiān)控,所以本文給大家介紹了如何通過SpringBoot實現(xiàn)EMQ設(shè)備的上下線告警,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-10-10
  • Mybatis逆向工程實現(xiàn)連接MySQL數(shù)據(jù)庫

    Mybatis逆向工程實現(xiàn)連接MySQL數(shù)據(jù)庫

    本文主要介紹了Mybatis逆向工程實現(xiàn)連接MySQL數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • idea創(chuàng)建javaweb原生項目的實現(xiàn)示例

    idea創(chuàng)建javaweb原生項目的實現(xiàn)示例

    這篇文章主要介紹了idea創(chuàng)建javaweb原生項目的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java負(fù)載均衡算法實現(xiàn)之輪詢和加權(quán)輪詢

    Java負(fù)載均衡算法實現(xiàn)之輪詢和加權(quán)輪詢

    網(wǎng)上找了不少負(fù)載均衡算法的資源,都不夠全面,后來自己結(jié)合了網(wǎng)上的一些算法實現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Java負(fù)載均衡算法實現(xiàn)之輪詢和加權(quán)輪詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04

最新評論