亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java中數組轉List的三種方法與對比分析

2024-07-14 08:41:27
字體:
來源:轉載
供稿:網友

前言:

本文介紹Java中數組轉為List三種情況的優劣對比,以及應用場景的對比,以及程序員常犯的類型轉換錯誤原因解析。

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

通過 Arrays.asList(strArray) 方式,將數組轉換List后,不能對List增刪,只能查改,否則拋異常。

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

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

執行結果:

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類中一個私有靜態內部類java.util.Arrays.ArrayList ,它并非java.util.ArrayList類。java.util.Arrays.ArrayList類具有 set() ,get() ,contains()等方法,但是不具有添加add()或刪除remove()方法,所以調用add()方法會報錯。

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

二.數組轉為List后,支持增刪改查的方式

通過ArrayList的構造器,將Arrays.asList(strArray)的返回值由java.util.Arrays.ArrayList轉為java.util.ArrayList 。

關鍵代碼:ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArray)) ;

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

執行結果:成功追加一個元素“1”。

[null, null, 1]

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

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

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

關鍵代碼:

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

測試:

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

執行結果:同樣成功追加一個元素“1”。

[null, null, 1]

使用場景:需要在將數組轉換為List后,對List進行增刪改查操作,在List的數據量巨大的情況下,優先使用,可以提高操作速度。

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色在线视频| 国产精品精品久久久| 日韩电影中文字幕| 日韩专区在线播放| 亚洲免费视频在线观看| 欧美做爰性生交视频| 欧美性xxxx极品高清hd直播| 91精品国产沙发| 日韩av片永久免费网站| 九九热这里只有在线精品视| 亚洲欧洲在线看| 亚洲精品久久久久久久久久久久久| 国产在线一区二区三区| 日韩av有码在线| 日韩美女福利视频| 国产精品www网站| 日韩视频免费大全中文字幕| 97精品伊人久久久大香线蕉| 亚洲无av在线中文字幕| 亚洲成年人在线播放| 国模吧一区二区| 国模精品系列视频| 51视频国产精品一区二区| 色噜噜狠狠色综合网图区| 欧美日在线观看| 最近2019中文免费高清视频观看www99| 日韩激情视频在线播放| 精品国产欧美一区二区三区成人| 久久伊人精品一区二区三区| 国产精品普通话| 国产免费成人av| 国产在线日韩在线| 日韩中文在线中文网三级| 色妞色视频一区二区三区四区| 97久久精品在线| 亚洲第一精品久久忘忧草社区| 欧美一区二粉嫩精品国产一线天| 久久深夜福利免费观看| 亚洲成人性视频| 午夜免费久久久久| 91探花福利精品国产自产在线| 中文字幕日本精品| 精品国产福利视频| 日韩中文字幕国产精品| 在线播放国产精品| 日韩精品免费在线| 色综合色综合网色综合| 亚洲国产福利在线| 国产色婷婷国产综合在线理论片a| 欧美日韩国产中文精品字幕自在自线| 欧美午夜性色大片在线观看| 欧美精品18videos性欧| 欧美日本在线视频中文字字幕| 亚洲最新视频在线| 51ⅴ精品国产91久久久久久| 97色在线观看免费视频| 欧美理论在线观看| 亚洲护士老师的毛茸茸最新章节| 国产精品白嫩美女在线观看| 日韩av免费在线| 亚洲国产私拍精品国模在线观看| 国产一区二中文字幕在线看| 亚洲国产日韩一区| 久久大大胆人体| 亚洲第一中文字幕在线观看| 97香蕉超级碰碰久久免费的优势| 亚洲无亚洲人成网站77777| 在线视频欧美性高潮| 欧美性猛交xxxx| 国产成人av在线| 午夜精品福利视频| 亚洲美女精品成人在线视频| 国产精品久久久久久久久久久不卡| 欧美成人免费小视频| 欧美性视频精品| 一区二区三区视频在线| 久热精品在线视频| 日韩欧美在线播放| 亚洲第一区在线| 91久久精品日日躁夜夜躁国产| 国产欧美va欧美va香蕉在线| 亚洲高清免费观看高清完整版| 亚洲国产精品yw在线观看| 精品视频久久久久久久| 久久夜色精品国产| 亚州成人av在线| 日本欧美中文字幕| 国内成人精品视频| 精品国产乱码久久久久久虫虫漫画| 日本成人免费在线| 久久精品久久久久久国产 免费| 一本大道久久加勒比香蕉| 美女视频黄免费的亚洲男人天堂| 日韩精品一二三四区| 欧美小视频在线| 中文字幕欧美精品在线| 久久久久久国产三级电影| 亚洲a级在线观看| 俺去了亚洲欧美日韩| 欧美国产第一页| 91在线观看免费观看| 中文字幕日韩在线观看| 97高清免费视频| 亚洲成人免费在线视频| 色777狠狠综合秋免鲁丝| 亚洲图片在线综合| 亚洲97在线观看| 97婷婷大伊香蕉精品视频| 97在线精品国自产拍中文| 国产精品va在线播放我和闺蜜| 国产午夜精品视频免费不卡69堂| 国产成人在线播放| 国产精品久久久久久久久久久久| 亚洲精品久久久久久久久久久| 日本一欧美一欧美一亚洲视频| 欧美激情精品久久久久久免费印度| 色老头一区二区三区| 亚洲高清免费观看高清完整版| 国产成人精品av在线| 欧美极品美女电影一区| 91免费版网站入口| 91中文在线观看| 亚洲午夜精品久久久久久久久久久久| 日本一区二区在线播放| 亚洲经典中文字幕| 97视频免费看| 日韩一区二区欧美| 亚洲国产成人一区| 国内精品400部情侣激情| 亚洲成人网在线观看| 久久久久久久国产精品| 69久久夜色精品国产7777| 热久久视久久精品18亚洲精品| 美女扒开尿口让男人操亚洲视频网站| 国产不卡一区二区在线播放| 亚洲欧美日韩另类| 欧美视频一区二区三区…| 欧美诱惑福利视频| 中文字幕欧美日韩| 亚洲天堂视频在线观看| 久久99国产精品久久久久久久久| 国产成人一区二区| 久久免费国产精品1| 岛国精品视频在线播放| zzijzzij亚洲日本成熟少妇| 欧美午夜片欧美片在线观看| 欧美日韩午夜视频在线观看| 欧美日韩精品中文字幕| 精品成人69xx.xyz| 精品国产欧美一区二区五十路| 97热精品视频官网| 欧美成人免费播放| 激情久久av一区av二区av三区| 欧美夜福利tv在线| 91豆花精品一区| 成人国产精品日本在线| 欧美亚洲国产另类| 欧美精品aaa| 热门国产精品亚洲第一区在线| 91禁国产网站| 美女国内精品自产拍在线播放| 97精品国产aⅴ7777| 亚洲精品aⅴ中文字幕乱码| 日韩国产精品亚洲а∨天堂免|