更新時(shí)間:2020-03-23 12:38:22 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2559次
通過(guò)Arrays.asList(T…a)將數(shù)組轉(zhuǎn)換為L(zhǎng)ist,轉(zhuǎn)換后的List只能進(jìn)行查改,不能進(jìn)行增刪,否則就會(huì)跑出異常。
代碼演示:
importjava.util.Arrays;
importjava.util.List;
/**
*@ClassNameArrayToList
*@DescriptionTODO
*@AuthorDD
*@Date2019/8/610:19
*@Version5.0
**/
publicclassArrayToList{
publicstaticvoidmain(String[]args){
String[]sArray=newString[5];
List<String>list=Arrays.asList(sArray);
//添加一個(gè)元素
list.add("test");
System.out.println(list);
}
} 運(yùn)行結(jié)果:
Exceptioninthread"main"java.lang.UnsupportedOperationException atjava.util.AbstractList.add(AbstractList.java:148) atjava.util.AbstractList.add(AbstractList.java:108) atlottery.ArrayToList.main(ArrayToList.java:19)
這里在轉(zhuǎn)換之后調(diào)用add方法時(shí)直接報(bào)了一個(gè)UnsupportedOperationException異常。
源碼分析:

通過(guò)源碼分析可以看到,Arrays.asList(sArray)方法返回的是Arrays類里面的一個(gè)靜態(tài)內(nèi)部類java.util.Arrays.ArrayList,java.util.Arrays.ArrayList類具有g(shù)et、set、contains等方法,但是并沒用重寫add、remove方法,所以調(diào)用add方法時(shí)會(huì)報(bào)錯(cuò)!
其它做法:
importjava.util.ArrayList;
importjava.util.Arrays;
importjava.util.Collections;
importjava.util.List;
/**
*@ClassNameArrayToList
*@DescriptionTODO
*@AuthorDD
*@Date2019/8/610:19
*@Version5.0
**/
publicclassArrayToList{
publicstaticvoidmain(String[]args){
//第一種
String[]sArray=newString[5];
List<String>list=newArrayList<>(Arrays.asList(sArray));
list.add("test");
System.out.println(list);
//第二種
List<String>list1=newArrayList<String>(5);
Collections.addAll(list1,sArray);
list1.add("test");
System.out.println(list1);
}以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)學(xué)習(xí):Java合并數(shù)組”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)