真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在Java中將數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方式有哪些-創(chuàng)新互聯(lián)

在Java中將數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方式有哪些?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都創(chuàng)新互聯(lián)公司專(zhuān)注于蘭考企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城開(kāi)發(fā)。蘭考網(wǎng)站建設(shè)公司,為蘭考等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)Java是什么

Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言,可以編寫(xiě)桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。

一.最常見(jiàn)方式(未必最佳)

通過(guò) Arrays.asList(strArray) 方式,將數(shù)組轉(zhuǎn)換List后,不能對(duì)List增刪,只能查改,否則拋異常。

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

private void testArrayCastToListError() {
  String[] strArray = new String[2];
  List list = Arrays.asList(strArray);
  //對(duì)轉(zhuǎn)換后的list插入一條數(shù)據(jù)
  list.add("1");
  System.out.println(list);
 }

執(zhí)行結(jié)果:

Exception in thread "main" java.lang.UnsupportedOperationException
    at java.util.AbstractList.add(AbstractList.java:148)
    at java.util.AbstractList.add(AbstractList.java:108)
    at com.darwin.junit.Calculator.testArrayCastToList(Calculator.java:19)
    at com.darwin.junit.Calculator.main(Calculator.java:44)

程序在list.add(“1”)處,拋出異常:UnsupportedOperationException。

原因解析:

Arrays.asList(strArray)返回值是java.util.Arrays類(lèi)中一個(gè)私有靜態(tài)內(nèi)部類(lèi)java.util.Arrays.ArrayList ,它并非java.util.ArrayList類(lèi)。java.util.Arrays.ArrayList類(lèi)具有 set() ,get() ,contains()等方法,但是不具有添加add()或刪除remove()方法,所以調(diào)用add()方法會(huì)報(bào)錯(cuò)。

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

二.數(shù)組轉(zhuǎn)為L(zhǎng)ist后,支持增刪改查的方式

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

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

private void testArrayCastToListRight() {
  String[] strArray = new String[2];
  ArrayList list = new ArrayList(Arrays.asList(strArray)) ;
  list.add("1");
  System.out.println(list);
 }

執(zhí)行結(jié)果:成功追加一個(gè)元素“1”。

[null, null, 1]

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

三.通過(guò)集合工具類(lèi)Collections.addAll()方法(最高效)

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

關(guān)鍵代碼:

ArrayList< String> arrayList = new ArrayList(strArray.length);
Collections.addAll(arrayList, strArray);

測(cè)試:

private void testArrayCastToListEfficient(){
  String[] strArray = new String[2];
  ArrayList< String> arrayList = new ArrayList(strArray.length);
  Collections.addAll(arrayList, strArray);
  arrayList.add("1");
  System.out.println(arrayList);
 }

執(zhí)行結(jié)果:同樣成功追加一個(gè)元素“1”。

[null, null, 1]

使用場(chǎng)景:需要在將數(shù)組轉(zhuǎn)換為L(zhǎng)ist后,對(duì)List進(jìn)行增刪改查操作,在List的數(shù)據(jù)量巨大的情況下,優(yōu)先使用,可以提高操作速度。

注:附上Collections.addAll()方法源碼:

public static  boolean addAll(Collection c, T... elements) {
  boolean result = false;
  for (T element : elements)
   result |= c.add(element);//result和c.add(element)按位或運(yùn)算,然后賦值給result
  return result;
 }

看完上述內(nèi)容,你們掌握在Java中將數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方式有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享標(biāo)題:在Java中將數(shù)組轉(zhuǎn)換為L(zhǎng)ist的方式有哪些-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://weahome.cn/article/jecgs.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部