亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

Java11之前

使用toArray方法

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

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

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

在Java 11及之前,推薦使用這種方式來避免不必要的數(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開始,推薦使用new Type[0]作為toArray方法的參數(shù),因?yàn)樗梢员苊庠诩洗笮∫阎獣r(shí)的不必要數(shù)組創(chuàng)建和復(fù)制。

使用流(Streams)API

雖然這不是最直接的方法,但你可以使用流來轉(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)來指定數(shù)組的類型。這將返回一個(gè)正確類型的數(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,簡潔且高效。

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

相關(guān)文章

  • 關(guān)于json序列化(javaBean轉(zhuǎn)Json的細(xì)節(jié)處理)

    關(guān)于json序列化(javaBean轉(zhuǎn)Json的細(xì)節(jié)處理)

    這篇文章主要介紹了關(guān)于json序列化(javaBean轉(zhuǎn)Json的細(xì)節(jié)處理),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-03-03
  • SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法

    SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的方法

    這篇文章主要給大家介紹了SpringBoot在項(xiàng)目停止(服務(wù)停止/關(guān)閉退出)之后執(zhí)行的兩種方法,實(shí)現(xiàn)DisposableBean接口和使用@PreDestroy注解,文中有詳細(xì)的代碼講解,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-12-12
  • Java通俗易懂系列設(shè)計(jì)模式之建造者模式

    Java通俗易懂系列設(shè)計(jì)模式之建造者模式

    這篇文章主要介紹了Java通俗易懂系列設(shè)計(jì)模式之建造者模式,對(duì)設(shè)計(jì)模式感興趣的讀者,一定要看一下
    2021-04-04
  • maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測(cè)可用)

    maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測(cè)可用)

    本篇文章主要介紹了maven+阿里云創(chuàng)建國內(nèi)鏡像的中央倉庫(親測(cè)可用),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解Java實(shí)踐之建造者模式

    詳解Java實(shí)踐之建造者模式

    建造者模式是將一個(gè)復(fù)雜的對(duì)象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。它隱藏了復(fù)雜對(duì)象的創(chuàng)建過程,它把復(fù)雜對(duì)象的創(chuàng)建過程加以抽象,通過子類繼承或者重載的方式,動(dòng)態(tài)的創(chuàng)建具有復(fù)合屬性的對(duì)象
    2021-06-06
  • java實(shí)現(xiàn)微信支付(服務(wù)端)

    java實(shí)現(xiàn)微信支付(服務(wù)端)

    這篇文章主要介紹了java實(shí)現(xiàn)微信支付,針對(duì)服務(wù)端進(jìn)行代碼編寫,感興趣的小伙伴們可以參考一下
    2015-12-12
  • MyBatis 自動(dòng)更新時(shí)間的方法實(shí)現(xiàn)

    MyBatis 自動(dòng)更新時(shí)間的方法實(shí)現(xiàn)

    本文主要介紹了MyBatis 自動(dòng)更新時(shí)間的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析

    Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系分析

    Spring、SpringBoot和SpringCloud是Java開發(fā)中常用的框架,分別針對(duì)企業(yè)級(jí)應(yīng)用開發(fā)、快速開發(fā)和分布式系統(tǒng),本文介紹Spring、Spring?Boot、Spring?Cloud?的區(qū)別與聯(lián)系,感興趣的朋友一起看看吧
    2025-03-03
  • Java之Buffer屬性案例詳解

    Java之Buffer屬性案例詳解

    這篇文章主要介紹了Java之Buffer屬性案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • JAVA獲得域名IP地址的方法

    JAVA獲得域名IP地址的方法

    這篇文章主要介紹了JAVA獲得域名IP地址的方法,涉及java域名操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論