數組中刪除某個元素/數組轉集合/java.lang.UnsupportedOperationException 異常分析

//創建一個數組
String[] arr = new String[] { "1", "2", "3" };
//將數組轉成集合
List<String> list = Arrays.asList(arr);
// 此步驟是防止遍歷刪除時報錯,上一步的list是數組轉換的 ,Arrays.asList(arr) 轉換的 List 並不能進行 add 和 remove
// 操作。
// Arrays.asList(arr) 返回的類型是 Aarrays$ArrayList 並不是 ArrayList,Aarrays$ArrayList 和
// ArrayList 都繼承 AbstractList,但是 AbstractList 中的 add 方法和 remove 方法都是直接拋出
// UnsupportedOperationException,並沒有直接實現。
// ArrayList 重寫了 add 方法和 remove 方法,能夠進行對應的添加和刪除操作,Aarrays$ArrayList
// 卻沒有去重寫,所以此時調用 add 方法和 remove 方法會拋出 UnsupportedOperationException。
list = new ArrayList<String>(list);
for (int i = 0; i < list.size(); i++) {
	if (list.get(i).equals("2")) {
		list.remove(i);
	}
}
//將集合轉換成以逗號分隔的字符串
String listStr = String.join(",", list);
System.out.println(listStr);

有關java.lang.UnsupportedOperationException 異常的詳細說明

https://www.jianshu.com/p/7f718d900111

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章