首頁 >Java >java教程 >為什麼從 Arrays.asList() 中刪除元素會拋出 UnsupportedOperationException?

為什麼從 Arrays.asList() 中刪除元素會拋出 UnsupportedOperationException?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-30 21:47:13210瀏覽

Why Does Removing Elements from Arrays.asList() Throw an UnsupportedOperationException?

了解清單刪除的UnsupportedOperationException

Arrays.asList() 便利:暴露陷阱

Arrays.asList() 提供了一個簡單的創建方法一個列表,但它有一個警告-它的元素是不可變的。嘗試執行像remove()這樣的操作會觸發UnsupportedOperationException。

理解Arrays.asList()的限制

Arrays.asList()產生一個“固定大小的列表”,禁止任何結構修改,包括去除元素。

正確的方法:擁抱LinkedList

要解決此限制,請選擇LinkedList,它以其快速的remove() 操作而聞名:

List<String> list = new LinkedList<String>(Arrays.asList(split));

在String .split() 中抓取正規表示式

當使用String.split()來分區字串,請記住管道字元 (|) 作為正規表示式元字元具有重要意義。為避免混淆,請將其括在反斜線(|) 內以進行文字匹配:

template.split("\|")

實現高效演算法

要克服逐步刪除元素的低效問題,請利用更有效的方法:

  1. 在所需的範圍內產生一組不同的隨機數
  2. 利用ListIterator() 遍歷 List,刪除預先定義索引處的元素。

這種改進的方法具有 O(N) 複雜度,確保最佳性能。

以上是為什麼從 Arrays.asList() 中刪除元素會拋出 UnsupportedOperationException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn