通過Arrays.asList(T…a)將數(shù)組轉(zhuǎn)換為List,轉(zhuǎn)換后的List只能進(jìn)行查改,不能進(jìn)行增刪,否則就會跑出異常。
代碼演示:
importjava.util.Arrays; importjava.util.List; publicclassArrayToList{ publicstaticvoidmain(String[]args){ String[]sArray=newString[5]; List<String>list=Arrays.asList(sArray); //添加一個元素 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方法時直接報了一個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; 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); }
以上就是長沙牛耳教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)學(xué)習(xí):Java合并數(shù)組”的內(nèi)容,希望對大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時為你服務(wù)。