UnsupportedOperationException: リストからの要素の削除
list.remove(index) を使用してリストから要素を削除しようとすると、 UnsupportedOperationException が発生しました。このエラーは、Arrays.asList() によって返される固定サイズのリストの使用に起因します。
Arrays.asList() は固定サイズのリストを返します
Arrays .asList() は、指定された配列を基にしたリストを作成します。このリストは不変であり、要素の追加や削除などの構造の変更はサポートされていません。
修正:
この問題を解決するには、削除を許可する可変リストの実装を使用します。たとえば、LinkedList を使用できます。
List<String> list = new LinkedList<>(Arrays.asList(split));
正規表現による分割
split() メソッドは、文字列を分割するために正規表現とともに使用されます。パイプ文字 (|) は正規表現のメタ文字であり、リテラルとして使用する場合はエスケープする必要があります。
修正:
リテラルのパイプ文字で分割するには、エスケープします。二重バックスラッシュを使用します。
template.split("\|")
最適化アルゴリズム
remove() を繰り返し呼び出す代わりに、より効率的なアルゴリズムを検討してください。
このアルゴリズムは O(N) 時間で実行されます。N はリストのサイズであり、元のアプローチよりも大幅に高速です。
以上がリストから要素を削除すると UnsupportedOperationException がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。