Warum können wir nicht einfach auf die set in Argument arbeiten , sie ändern und dann sie zurückgeben? Warum haben wir eine andere Kopie erstellt ?
Ich meine Warum können wir nicht die alleZahlenGroesserAls10Entfernen() Funktion so machen :
public static HashSet<Integer> alleZahlenGroesserAls10Entfernen(HashSet<Integer> set) {
for (Integer n : set) {
if (n > 10) {
set.remove(n);
}
}
return set;
}
package de.codegym.task.task08.task0814;
import java.util.HashSet;
import java.util.Set;
import java.util.Iterator;
/*
Größer als 10? Du passt nicht gut zu uns
*/
public class Solution {
public static HashSet<Integer> setErstellen() {
// schreib hier deinen Code
HashSet<Integer> set = new HashSet<>();
set.add(18);
set.add(2);
set.add(144);
set.add(3);
set.add(9);
set.add(78);
set.add(77);
set.add(21);
set.add(99);
set.add(8);
set.add(54);
set.add(68);
set.add(32);
set.add(17);
set.add(87);
set.add(14);
set.add(45);
set.add(93);
set.add(74);
set.add(168);
return set;
}
public static HashSet<Integer> alleZahlenGroesserAls10Entfernen(HashSet<Integer> set) {
// schreib hier deinen Code
HashSet<Integer> copy = new HashSet<>();
Iterator<Integer> iterator = copy.iterator();
while (iterator.hasNext()){
int zahl = iterator.next();
if ( zahl >10 ) set.remove(zahl);
}
return set;
}
public static void main(String[] args) {
}
}