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

Java實(shí)現(xiàn)數(shù)組轉(zhuǎn)List的四種方式

 更新時間:2025年08月05日 10:05:22   作者:肥極喵  
在Java編程中,數(shù)組和列表是兩種非常常用的數(shù)據(jù)結(jié)構(gòu),數(shù)組是一種固定大小的數(shù)據(jù)結(jié)構(gòu),能夠高效存儲同一類型的數(shù)據(jù),而列表則是一個更為靈活的結(jié)構(gòu),可以動態(tài)調(diào)整大小,將數(shù)組轉(zhuǎn)換為列表是一個常見的任務(wù),這里我們將介紹四種簡單實(shí)現(xiàn)方式,需要的朋友可以參考下

Java 數(shù)組轉(zhuǎn)List的四種方式

第一種方式(未必最佳):使用ArrayList.asList(strArray)

? 使用Arrays工具類Arrays.asList(strArray)方式,轉(zhuǎn)換完成后,只能對List數(shù)組進(jìn)行查改,不能增刪,增刪就會拋出UnsupportedOperationException 異常

import java.util.Arrays;
import java.util.List; 
public static void Demo1() {
        String[] str = {"fgx", "lzy"};
        //注意這個List不是Collections包內(nèi)的List,而是util包里面的List接口
        List<String> ints = Arrays.asList(str);
    	//這里會報(bào)錯
        ints.add("laopo");
    }

添加數(shù)據(jù)報(bào)錯:

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:148)
	at java.util.AbstractList.add(AbstractList.java:108)
	at JAVA基礎(chǔ).JDK8新特性.Java數(shù)組轉(zhuǎn)List.Demo1(Java數(shù)組轉(zhuǎn)List.java:20)
	at JAVA基礎(chǔ).JDK8新特性.Java數(shù)組轉(zhuǎn)List.main(Java數(shù)組轉(zhuǎn)List.java:13)

報(bào)錯原因:Arrays.asList(str)返回值是java.util.Arrays類中一個私有靜態(tài)內(nèi)部類 java.utiil.Arrays.Arraylist,并不是我們平時用的java.util.ArrayList();

使用場景:Arrays.asList(strArray)方式僅能用在將數(shù)組轉(zhuǎn)換為List后,不需要增刪其中的值,僅作為數(shù)據(jù)源讀取使用。

第二種方法(支持增刪查改):

通過ArrayList的構(gòu)造器,將Arrays.asList(strArray)的返回值由java.utilArrays.ArrayList轉(zhuǎn)為java.util.ArrayList.

關(guān)鍵代碼ArrayList list = new ArrayList(Arrays.asList(strArray)) ;

  String[] str = {"fgx", "lzy"};
        //注意這個List不是Collections包內(nèi)的List,而是util包里面的List接口
        java.util.ArrayList<String> strings = new ArrayList<>(Arrays.asList(str));
        strings.add("aop");
        strings.stream().forEach(System.out::println);

使用場景:需要在將數(shù)組轉(zhuǎn)換為List后,對List進(jìn)行增刪改查操作,在List的數(shù)據(jù)量不大的情況下,可以使用。

第三種方式(通過集合工具類Collections.addAll()方法(最高效))

? 通過Collections.addAll(arrayList, strArray)方式轉(zhuǎn)換,根據(jù)數(shù)組的長度創(chuàng)建一個長度相同的List,然后通過Collections.addAll()方法,將數(shù)組中的元素轉(zhuǎn)為二進(jìn)制,然后添加到List中,這是最高效的方法。

 public static void Demo3() {
        //注意這個List不是Collections包內(nèi)的List,而是util包里面的List接口
        String[] str = {"fgx", "lzy"};
        java.util.ArrayList<String> stringList = new ArrayList<>(str.length);
        Collections.addAll(stringList,str);
    }

第四種方式通過JDK8的Stream流將3總基本類型數(shù)組轉(zhuǎn)為List

? 如果JDK版本在1.8以上,使用流stream來將下列3種數(shù)組快速轉(zhuǎn)為List,分別是int[],long[],double[],不支持short[ ],byte[ ],char[]在JDK1.8中暫不支持.

 int[] ints = {2, 34, 55, 22, 11};
        long[] longs = {1, 2, 3};
        double[] doubles = {1, 2, 3};
        Arrays.stream(ints).boxed().collect(Collectors.toList());
        Arrays.stream(longs).boxed().collect(Collectors.toList());
        Arrays.stream(doubles).boxed().collect(Collectors.toList());

TIPs:為什么int[]不能直接轉(zhuǎn)為List,而Integer[]可以轉(zhuǎn)為List,而Integer[]就可以轉(zhuǎn)為List了,因?yàn)長ist中的泛型必須是引用類型。

到此這篇關(guān)于Java實(shí)現(xiàn)數(shù)組轉(zhuǎn)List的四種方式的文章就介紹到這了,更多相關(guān)Java數(shù)組轉(zhuǎn)List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java中綴表達(dá)式的實(shí)現(xiàn)

    詳解Java中綴表達(dá)式的實(shí)現(xiàn)

    中綴表達(dá)式是一個通用的算術(shù)或邏輯公式表示方法。,中綴表達(dá)式不容易被計(jì)算機(jī)解析,但仍被許多程序語言使用,因?yàn)樗先藗兊钠毡橛梅ā1疚慕榻B了實(shí)現(xiàn)中綴表達(dá)式的方法,需要的可以參考一下
    2022-07-07
  • Dubbo服務(wù)校驗(yàn)參數(shù)的解決方案

    Dubbo服務(wù)校驗(yàn)參數(shù)的解決方案

    這篇文章主要介紹了Dubbo服務(wù)如何優(yōu)雅的校驗(yàn)參數(shù),Dubbo框架本身是支持參數(shù)校驗(yàn)的,同時也是基于JSR303去實(shí)現(xiàn)的,今天通過示例代碼介紹下詳細(xì)實(shí)現(xiàn)過程,需要的朋友可以參考下
    2022-03-03
  • Java利用POI讀取、寫入Excel的方法指南

    Java利用POI讀取、寫入Excel的方法指南

    這篇文章主要給大家介紹了關(guān)于Java利用POI讀取、寫入Excel的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 基于Java向zip壓縮包追加文件

    基于Java向zip壓縮包追加文件

    這篇文章主要介紹了基于Java向zip壓縮包追加文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • mybatisplus使用xml的示例詳解

    mybatisplus使用xml的示例詳解

    這篇文章主要介紹了mybatisplus使用xml,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • java實(shí)現(xiàn)科學(xué)計(jì)算器的全過程與代碼

    java實(shí)現(xiàn)科學(xué)計(jì)算器的全過程與代碼

    最近編寫了一個功能較全面的科學(xué)計(jì)算器,該計(jì)算器不僅能進(jìn)行加、減、乘、除等混合運(yùn)算,而且能計(jì)算sin、cos、tan、log等函數(shù)的值,還要具有清零、退格、求倒數(shù)、求相反數(shù)等功能,這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)科學(xué)計(jì)算器的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 使用純java config來配置spring mvc方式

    使用純java config來配置spring mvc方式

    這篇文章主要介紹了使用純java config來配置spring mvc方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java日期格式化的實(shí)現(xiàn)(@JsonFormat和@JSONField)

    Java日期格式化的實(shí)現(xiàn)(@JsonFormat和@JSONField)

    本文主要介紹了Java日期格式化的實(shí)現(xiàn),主要介紹了@JsonFormat和@JSONField兩種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • Java編程獲取文件列表及子文件目錄的方法(非遞歸)

    Java編程獲取文件列表及子文件目錄的方法(非遞歸)

    這篇文章主要介紹了Java編程獲取文件列表及子文件目錄的方法(非遞歸),具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • SpringMvc框架的簡介與執(zhí)行流程詳解

    SpringMvc框架的簡介與執(zhí)行流程詳解

    MVC是一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個組件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯,MVC分層有助于管理和架構(gòu)復(fù)雜的應(yīng)用程序
    2021-06-06

最新評論

阳西县| 甘孜| 清水县| 莎车县| 定远县| 鲜城| 乌鲁木齐市| 年辖:市辖区| 竹山县| 锡林浩特市| 垫江县| 新昌县| 大化| 阿拉善左旗| 开封县| 七台河市| 丹阳市| 亚东县| 新宁县| 佛教| 天峻县| 商城县| 台江县| 辉南县| 海晏县| 霍邱县| 东丽区| 舒兰市| 池州市| 南城县| 泽库县| 印江| 武宣县| 江北区| 黄梅县| 钦州市| 城口县| 通山县| 浦东新区| 清河县| 望谟县|