UnsupportedOperationException: 從清單中刪除元素
當嘗試使用list.remove(index) 從清單中刪除元素時,您可以遇到UnsupportedOperationException。此錯誤源自於使用 Arrays.asList() 傳回的固定大小清單。
Arrays.asList() 傳回固定大小列表
陣列.asList() 建立一個由給定陣列支援的清單。此清單是不可變的,不支援新增或刪除元素等結構修改。
修正:
要解決此問題,請使用允許刪除的可變清單實作。例如,您可以使用 LinkedList。
List<String> list = new LinkedList<>(Arrays.asList(split));
使用正規表示式分割
split() 方法與正規表示式一起使用來分割字串。管道字符 (|) 是一個正規表示式元字符,用作文字時應進行轉義。
修正:
要在文字管道字元上拆分,請將其轉義使用雙反斜線。
template.split("\|")
最佳化演算法
不要重複呼叫remove(),考慮一個更有效率的演算法:
演算法運行時間為 O(N),其中 N 是列表的大小,這比原始方法要快得多。
以上是為什麼從清單中刪除元素會拋出 UnsupportedOperationException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!