1. ホーム
  2. java

[解決済み] 配列からミュータブルリストを作る?

2023-01-01 02:55:15

質問

配列があるのですが、これを List に変換して、配列の内容を変更することができます。

スタックオーバーフローには Arrays.asList() について、そしてそれがどのように基礎となる配列のリストビューだけを提供するか、そしてどのように結果のリストを操作しようとすると一般的に UnsupportedOperationException をスローします。 add() , remove() など) が提供するリスト実装では実装されていません。 Arrays.asList() .

しかし、配列をミュータブルリストに変換する方法の例は見当たりません。 配列の中をループして put() をループして、それぞれの値を新しいListにすることができると思いますが、これをやってくれるインターフェースが存在するのかどうか疑問に思っています。

どのように解決するのですか?

簡単な方法を1つ紹介します。

Foo[] array = ...;
List<Foo> list = new ArrayList<Foo>(Arrays.asList(array));

これでミュータブルリストが作成されますが、これは コピー のコピーです。リストを変更すると ではなく は配列を変更しません。もちろん、後でコピーして戻すこともできます。 toArray .

もし、ミュータブルな ビュー を作りたいのであれば、自分で実装する必要があると思います。