Java 刪除String[] 數組中的指定元素 注意事項
實際上最初想要解決的問題是:刪除String[] 數組中指定的元素。
然而,發現需要先轉換成List(如果你有不需要轉換成List的方法歡迎留言),發現直接: list1.remove("2");會報錯
String items[] = {"1","2","3","4","5"};
List<String> list1=Arrays.asList(items);//將數組轉換為list
/*
發現直接: list1.remove("2");會報錯:
Exception in thread "main" java.lang.UnsupportedOperationException
*/
網上找到報錯原因:
調用Arrays.asList()生產的List的add、remove方法時報異常,這是由Arrays.asList() 返回的市Arrays的內部類ArrayList, 而不是java.util.ArrayList。Arrays的內部類ArrayList和java.util.ArrayList都是繼承AbstractList,remove、add等方法AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了這些方法而Arrays的內部類ArrayList沒有重新,所以會拋出異常。
(出自:https://blog.csdn.net/lin451791119/article/details/82705557)
解決方法:加入 List
String items[] = {"1","2","3","4","5"};
for(String a:items)
System.out.println(a);
List<String> list1=Arrays.asList(items);
List<String> arrList = new ArrayList<String>(list1); //
arrList.remove("4");
System.out.println(arrList);
運行結果:
1
2
3
4
5
[1, 2, 3, 5]