から取得したコレクションに対して実行<Collection>.add
または操作を行うことはできません。削除操作のみが許可されています。 <Collection>.addAll
Arrays.asList
List
?の以前の要素を削除せずに、新しい要素を追加する必要があるシナリオに遭遇した場合はどうなりList
ますか?. どうすればこれを達成できますか?
ArrayList
コンストラクターを使用して新しいを作成します。
List<String> list = new ArrayList<String>(Arrays.asList("a", "b"));
1 つの方法は、新しい を構築することArrayList
です。
List<T> list = new ArrayList<T>(Arrays.asList(...));
それができたら、好きなように変更できlist
ます。
Arrays.asList() は、実際には配列に裏打ちされたリストを生成します。これは、リストとしてモーフィングされた配列です。リストとして使用できますが、新しい要素の追加など、特定の操作を行うことはできません。したがって、最良のオプションは、次のように別のリスト obj のコンストラクターに渡すことです。
List<T> list = new ArrayList<T>(Arrays.asList(...));
次の例の ArrayList などのコレクションのコンストラクターは、配列をリストとして受け取り、そのリストの要素を使用して新しいインスタンスを構築します。
List<T> list = new ArrayList<T>(Arrays.asList(...));
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#ArrayList(java.util.Collection)