web-dev-qa-db-ja.com

addAllを使用してハッシュセットにリストを追加します

In JavaハッシュセットaddAllメソッドを使用してリストをハッシュセットに追加できません

List a = new ArrayList();
a.add(20);

List b = new ArrayList();
b.add(30);

Set set = new HashSet ( a );

set.addAll( b);

助けてください

ありがとう

10

私はあなたのコードを試しました、そしてそれは私のために働きます。

ただし、1つだけ、コレクションの汎用バージョンを使用することをお勧めします。これにより、警告が削除されます。

List<Integer> a = new ArrayList<Integer>();
a.add(20);

List<Integer> b = new ArrayList<Integer>();
b.add(30);

Set<Integer> set = new HashSet<Integer>(a);
set.addAll(b);
16
Mark Byers

これは問題なく機能します。リストをセットに追加すると、リストとセットの間で繰り返される要素が1回だけ追加されます。

たとえば、ArrayList arrには要素2,3,4があり、HashSetセットには要素2,5,7があるとします。ここで、set.addAll(arr)を実行すると、setには2,5,7,3,4が含まれます。

また、ArrayList arrとHashSetセットがあり、Tが複数のパラメーターを含むジェネリッククラスであるシナリオを想像してください。その後、最終セットの共通要素は、Tクラスのequalsメソッドのオーバーライドされた定義に従って削除され、セットに追加される要素は次のようになります。配列リスト内の要素の最終セットで永続化されました。

2
himani1349