46

から取得したコレクションに対して実行<Collection>.addまたは操作を行うことはできません。削除操作のみが許可されています。 <Collection>.addAllArrays.asList

List?の以前の要素を削除せずに、新しい要素を追加する必要があるシナリオに遭遇した場合はどうなりListますか?. どうすればこれを達成できますか?

4

8 に答える 8

80

ArrayListコンストラクターを使用して新しいを作成します。

List<String> list = new ArrayList<String>(Arrays.asList("a", "b"));
于 2013-08-22T19:14:38.467 に答える
15

1 つの方法は、新しい を構築することArrayListです。

List<T> list = new ArrayList<T>(Arrays.asList(...));

それができたら、好きなように変更できlistます。

于 2013-08-22T19:14:41.990 に答える
4

Arrays.asList() は、実際には配列に裏打ちされたリストを生成します。これは、リストとしてモーフィングされた配列です。リストとして使用できますが、新しい要素の追加など、特定の操作を行うことはできません。したがって、最良のオプションは、次のように別のリスト obj のコンストラクターに渡すことです。

List<T> list = new ArrayList<T>(Arrays.asList(...));
于 2016-07-07T17:10:45.823 に答える
3

次の例の 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)

于 2013-08-22T19:20:21.043 に答える