更新時間:2020-03-23 12:38:22 來源:動力節點 瀏覽2242次
通過Arrays.asList(T…a)將數組轉換為List,轉換后的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); } }
運行結果:
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)
這里在轉換之后調用add方法時直接報了一個UnsupportedOperationException異常。
源碼分析:
通過源碼分析可以看到,Arrays.asList(sArray)方法返回的是Arrays類里面的一個靜態內部類java.util.Arrays.ArrayList,java.util.Arrays.ArrayList類具有get、set、contains等方法,但是并沒用重寫add、remove方法,所以調用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); }
以上就是動力節點Java培訓機構小編介紹的“Java基礎學習:Java合并數組”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習