In Java kann ich mit der HashSet addAll-Methode keine Liste zu einem HashSet hinzufügen
List a = new ArrayList();
a.add(20);
List b = new ArrayList();
b.add(30);
Set set = new HashSet ( a );
set.addAll( b);
Bitte hilf mir
Danke
In Java kann ich mit der HashSet addAll-Methode keine Liste zu einem HashSet hinzufügen
List a = new ArrayList();
a.add(20);
List b = new ArrayList();
b.add(30);
Set set = new HashSet ( a );
set.addAll( b);
Bitte hilf mir
Danke
Ich habe deinen Code ausprobiert und er funktioniert für mich.
Eines sollte jedoch beachtet werden - es wäre besser, die generischen Versionen der Sammlungen zu verwenden. Dadurch werden die Warnungen entfernt.
List a = new ArrayList();
a.add(20);
List b = new ArrayList();
b.add(30);
Set set = new HashSet(a);
set.addAll(b);
Dies funktioniert gut, nur dass, wenn Sie eine Liste zum Satz hinzufügen, die wiederholten Elemente zwischen der Liste und dem Satz nur einmal hinzugefügt werden.
Angenommen, ArrayList arr hat die Elemente 2,3,4 und HashSet set die Elemente 2,5,7 jetzt, wenn Sie set.addAll(arr) machen, dann enthält set immer noch 2,5,7,3,4.
Stellen Sie sich auch ein Szenario vor, in dem Sie eine ArrayList arr und HashSet set haben, wobei T eine generische Klasse ist, die mehrere Parameter enthält, dann werden gemeinsame Elemente im endgültigen Satz gemäß der überschriebenen Definition der equals-Methode in der T-Klasse entfernt und das Element, das dem Satz hinzugefügt wird, wird im endgültigen Satz über dem Element in der Arraylist beibehalten.
ArrayList arr = new ArrayList<>();
arr.add(20);
arr.add(30);
arr.add(40);
System.out.println(arr); //[20, 30, 40]
ArrayList arr2 = new ArrayList<>();
arr2.add(10);
arr2.add(70);
arr2.add(40);
System.out.println(arr2); //[10, 70, 40]
arr2.addAll(arr);
System.out.println(arr2); //[10, 70, 40, 20, 30, 40]
HashSet set = new HashSet<>(arr);
System.out.println(set); //[20, 40, 30]
set.addAll(arr2);
ArrayList dummy = new ArrayList<>(set);
System.out.println(dummy); //[20, 70, 40, 10, 30]
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.