最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • Spring實戰(zhàn)之Bean的作用域singleton和prototype用法分析

    Spring實戰(zhàn)之Bean的作用域singleton和prototype用法分析

    這篇文章主要介紹了Spring實戰(zhàn)之Bean的作用域singleton和prototype用法,結(jié)合實例形式分析了Bean的作用域singleton和prototype相關(guān)使用方法及操作注意事項,需要的朋友可以參考下
    2019-11-11
  • Spring Boot CORS 配置方法允許跨域請求的最佳實踐方案

    Spring Boot CORS 配置方法允許跨域請求的最佳實踐方案

    跨域請求在現(xiàn)代Web開發(fā)中非常重要,特別是在涉及多個前端和后端服務(wù)時,本文詳細(xì)介紹了跨域請求的背景、重要性以及如何解決跨域問題,通過SpringBoot框架的CORS配置,可以有效地處理跨域請求,確保數(shù)據(jù)傳輸?shù)陌踩院陀脩趔w驗,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Spring Boot集成MyBatis實現(xiàn)通用Mapper的配置及使用

    Spring Boot集成MyBatis實現(xiàn)通用Mapper的配置及使用

    關(guān)于MyBatis,大部分人都很熟悉。MyBatis 是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。這篇文章主要介紹了Spring Boot集成MyBatis實現(xiàn)通用Mapper,需要的朋友可以參考下
    2018-08-08
  • java源碼閱讀之java.lang.Object

    java源碼閱讀之java.lang.Object

    這篇文章主要介紹了java源碼閱讀之java.lang.Object,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • 關(guān)于Idea中的.properties文件顯示問題

    關(guān)于Idea中的.properties文件顯示問題

    這篇文章主要介紹了關(guān)于Idea中的.properties文件顯示問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • spring的jdbctemplate的crud的基類dao

    spring的jdbctemplate的crud的基類dao

    本文主要介紹了使用spring的jdbctemplate進(jìn)行增刪改查的基類Dao的簡單寫法,需要的朋友可以參考下
    2014-02-02
  • Mybatis-Plus 官方神器發(fā)布

    Mybatis-Plus 官方神器發(fā)布

    mybatis-mate 為 mp 企業(yè)級模塊,支持分庫分表,數(shù)據(jù)審計、數(shù)據(jù)敏感詞過濾(AC算法),字段加密,字典回寫(數(shù)據(jù)綁定),數(shù)據(jù)權(quán)限,表結(jié)構(gòu)自動生成 SQL 維護(hù)等,旨在更敏捷優(yōu)雅處理數(shù)據(jù),今天介紹一個 MyBatis - Plus 官方發(fā)布的神器,感興趣的朋友一起看看吧
    2021-11-11
  • Java String保存字符串的機(jī)制

    Java String保存字符串的機(jī)制

    Java中字符串以什么格式來存儲?Java 中的 Unicode 字符串會按照 Latin1或者 UTF16 的編碼格式保存在 String 中,本文就詳細(xì)的介紹了一下,感興趣的可以了解一下
    2021-05-05
  • Java調(diào)用python代碼的五種方式總結(jié)

    Java調(diào)用python代碼的五種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java調(diào)用python代碼的五種方式,在Java中調(diào)用Python函數(shù)的方法有很多種,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • JavaWeb response完成重定向?qū)崿F(xiàn)過程詳解

    JavaWeb response完成重定向?qū)崿F(xiàn)過程詳解

    這篇文章主要介紹了JavaWeb response完成重定向?qū)崿F(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02

最新評論

义马市| 响水县| 修文县| 开平市| 沅江市| 广宗县| 永兴县| 丹阳市| 松阳县| 和顺县| 屯留县| 麦盖提县| 吕梁市| 扶沟县| 台北县| 乌鲁木齐市| 汪清县| 轮台县| 桐梓县| 绵阳市| 玉树县| 微博| 镇赉县| 乐清市| 余庆县| 灵台县| 沙雅县| 禹城市| 司法| 邵阳县| 松溪县| 和龙市| 巴中市| 兰西县| 浪卡子县| 搜索| 玉溪市| 正安县| 成安县| 区。| 内丘县|