更新時(shí)間:2020-03-23 12:38:22 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2296次
通過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異常。
源碼分析:
通過源碼分析可以看到,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ì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)