1. ホーム
  2. java

[解決済み] Arrays.asList() vs Collections.singletonList()

2022-04-25 18:20:57

質問

1つの項目を含むリストを作るのに、Collections.singletonList(something)よりArrays.asList(something)を使うことに利点(または大きな違い)はあるのでしょうか。後者は、返されたリストを同様に不変にします。

解決方法は?

Collections.singletonList(something) 不変 一方 Arrays.asList(something) は固定サイズ List リストと配列がヒープで結合された配列の表現です。

Arrays.asList(something) 非構造的な変更 を作成し、それをリストと結合した配列の両方に反映させます。これは UnsupportedOperationException は、特定のインデックスに要素を設定することはできますが、要素の追加や削除に使用されます。

で返されるリストに加えられたすべての変更は Collections.singletonList(something) は、結果として UnsupportedOperationException .

また Collections.singletonList(something) は常に 1 とは異なり Arrays.asList(something) の容量は、バックアップされた配列のサイズになります。