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

java11新特性之集合轉(zhuǎn)換為數(shù)組的方法

 更新時(shí)間:2024年06月06日 11:52:48   作者:morris131  
Java11引入了一種將帶有泛型的集合轉(zhuǎn)換為帶有泛型的數(shù)組的簡(jiǎn)單方法,本文通過(guò)實(shí)例代碼介紹java11新特性之集合轉(zhuǎn)換為數(shù)組的操作方法,感興趣的朋友跟隨小編一起看看吧

Java11引入了一種將帶有泛型的集合轉(zhuǎn)換為帶有泛型的數(shù)組的簡(jiǎn)單方法。

Java11之前

使用toArray方法

對(duì)于List,你可以直接使用toArray方法,但需要注意,toArray方法默認(rèn)返回一個(gè)Object[]數(shù)組,你可能需要將其強(qiáng)制轉(zhuǎn)換為正確的類(lèi)型。

List<String> list = Arrays.asList("a", "b", "c");
Object[] strObjectArray = list.toArray();

這樣轉(zhuǎn)出來(lái)的數(shù)組是Object類(lèi)型,在使用的時(shí)候還需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。

在Java 11及之前,推薦使用這種方式來(lái)避免不必要的數(shù)組復(fù)制:

String[] array = list.toArray(new String[0]);

在Java 11之前,你可能會(huì)看到這樣的代碼:

String[] array = list.toArray(new String[list.size()]);

這種方式在Java 11之前也是有效的,但可能導(dǎo)致不必要的數(shù)組復(fù)制

但從Java 9開(kāi)始,推薦使用new Type[0]作為toArray方法的參數(shù),因?yàn)樗梢员苊庠诩洗笮∫阎獣r(shí)的不必要數(shù)組創(chuàng)建和復(fù)制。

使用流(Streams)API

雖然這不是最直接的方法,但你可以使用流來(lái)轉(zhuǎn)換集合為數(shù)組。這通常在需要更復(fù)雜的轉(zhuǎn)換時(shí)更有用。

List<String> list = Arrays.asList("a", "b", "c");  
String[] array = list.stream().toArray(String[]::new);

在這個(gè)例子中,我們使用stream().toArray()方法,并傳遞一個(gè)構(gòu)造函數(shù)引用(String[]::new)來(lái)指定數(shù)組的類(lèi)型。這將返回一個(gè)正確類(lèi)型的數(shù)組。

Java11

Java 11中,toArray方法可以傳入IntFunction參數(shù)。這種方式允許你更靈活地創(chuàng)建數(shù)組。

toArray方法的原型如下:
java.util.Collection#toArray(java.util.function.IntFunction<T[]>)

default <T> T[] toArray(IntFunction<T[]> generator) {
    return toArray(generator.apply(0));
}

toArray方法的使用如下:

List<String> list = Arrays.asList("a", "b", "c");
String[] array = list.toArray(String[]::new);

這種方式使用方法引用String[]::new,簡(jiǎn)潔且高效。

到此這篇關(guān)于java11新特性之集合轉(zhuǎn)換為數(shù)組的文章就介紹到這了,更多相關(guān)java11集合轉(zhuǎn)換為數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC框架和SpringBoot項(xiàng)目中控制器的響應(yīng)結(jié)果深入分析

    SpringMVC框架和SpringBoot項(xiàng)目中控制器的響應(yīng)結(jié)果深入分析

    這篇文章主要介紹了SpringMVC框架和SpringBoot項(xiàng)目中控制器的響應(yīng)結(jié)果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-12-12
  • Mybatis?MappedStatement類(lèi)核心原理詳解

    Mybatis?MappedStatement類(lèi)核心原理詳解

    這篇文章主要介紹了Mybatis?MappedStatement類(lèi),mybatis的mapper文件最終會(huì)被解析器,解析成MappedStatement,其中insert|update|delete|select每一個(gè)標(biāo)簽分別對(duì)應(yīng)一個(gè)MappedStatement
    2022-11-11
  • Java中常用的設(shè)計(jì)模式之模板模式詳解

    Java中常用的設(shè)計(jì)模式之模板模式詳解

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)學(xué)生成績(jī)管理系統(tǒng),使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Springboot前后端分離項(xiàng)目配置跨域?qū)崿F(xiàn)過(guò)程解析

    Springboot前后端分離項(xiàng)目配置跨域?qū)崿F(xiàn)過(guò)程解析

    這篇文章主要介紹了Springboot前后端分離項(xiàng)目配置跨域?qū)崿F(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 詳解SpringIOC BeanDeifition

    詳解SpringIOC BeanDeifition

    這篇文章主要介紹了SpringIOC BeanDeifition的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)springioc,感興趣的朋友可以了解下
    2020-12-12
  • Java中Elasticsearch的4種分頁(yè)方式詳解

    Java中Elasticsearch的4種分頁(yè)方式詳解

    在?Elasticsearch?中,有?4種常見(jiàn)的分頁(yè)方法,本文將帶大家分析一下每種方法的優(yōu)缺點(diǎn)以及我們?cè)撊绾芜x擇,感興趣的小伙伴可以參考一下
    2025-01-01
  • springboot如何讀取配置文件(application.yml)中的屬性值

    springboot如何讀取配置文件(application.yml)中的屬性值

    本篇文章主要介紹了springboot如何讀取配置文件(application.yml)中的屬性值,具有一定的參考價(jià)值,有興趣的小伙伴可以了解一下
    2017-04-04
  • 淺談JavaIO之try with底層原理

    淺談JavaIO之try with底層原理

    眾所周知,所有被打開(kāi)的系統(tǒng)資源,比如流、文件或者Socket連接等,都需要被開(kāi)發(fā)者手動(dòng)關(guān)閉,否則隨著程序的不斷運(yùn)行,資源泄露將會(huì)累積成重大的生產(chǎn)事故。本文將介紹JavaIO之try with底層原理。
    2021-06-06
  • mybatis開(kāi)啟spring事務(wù)代碼解析

    mybatis開(kāi)啟spring事務(wù)代碼解析

    這篇文章主要介紹了mybatis開(kāi)啟spring事務(wù)代碼解析,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • spring?boot+vue實(shí)現(xiàn)JSAPI微信支付的完整步驟

    spring?boot+vue實(shí)現(xiàn)JSAPI微信支付的完整步驟

    JSAPI支付是用戶在微信中打開(kāi)商戶的H5頁(yè)面,商戶在H5頁(yè)面通過(guò)調(diào)用微信支付提供的JSAPI接口調(diào)起微信支付模塊完成支付,下面這篇文章主要給大家介紹了關(guān)于spring?boot+vue實(shí)現(xiàn)JSAPI微信支付的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評(píng)論