更新時間:2020-03-23 12:38:22 來源:動力節(jié)點 瀏覽2253次
通過Arrays.asList(T…a)將數(shù)組轉(zhuǎn)換為List,轉(zhuǎn)換后的List只能進行查改,不能進行增刪,否則就會跑出異常。
代碼演示:
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); //添加一個元素 list.add("test"); System.out.println(list); } }
運行結(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方法時直接報了一個UnsupportedOperationException異常。
源碼分析:
通過源碼分析可以看到,Arrays.asList(sArray)方法返回的是Arrays類里面的一個靜態(tài)內(nèi)部類java.util.Arrays.ArrayList,java.util.Arrays.ArrayList類具有g(shù)et、set、contains等方法,但是并沒用重寫add、remove方法,所以調(diào)用add方法時會報錯!
其它做法:
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); }
以上就是動力節(jié)點Java培訓機構(gòu)小編介紹的“Java基礎(chǔ)學習:Java合并數(shù)組”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。