ArrayList nur ergänzen wenn Element noch nicht vorhanden

shark95

Mitglied
Hallo,

ich hab folgendes Problem und komm einfach auf keine brauchbare lösung:
ich hab eine arraylist mit Strings, welche laufend ergänzt wird. Ich möchte aber ein Element nur hinzufügen wenn das Element noch nicht in der Arraylist ist. Dazu iteriere ich vor dem Hinzufügen eines Elements die Arraylist und vergleiche mit equals ob es schon vorhanden ist. das funktioniert aber nicht, weil er mir sonst immer das element hinzufügt wenn die strings nicht gleich sind!

hoffe ihr wisst was ich meine, danke schon mal
 
nimm dir eine boolean hilfsvariable und setze sie false sobald er etwas doppelt findet. wenn er durch ist, ein if und dann einmal reinschreiben oder eben nicht

einfacher:
Java:
        List<String> tada = new ArrayList<String>();
        String a = new String("toast");
        tada.add(a);
        System.out.println(tada);
        String b = new String("toast");
        System.out.println(a == b);
        System.out.println(a.equals(b));
        System.out.println(tada.contains(new String("toast")));
 
Gibt false zurück, wenn das Element bereits drin war:
Java:
List<String> elements;

boolean add(String element) {
	if (elements.contains(element))
		return false;
	elements.add(element);
	return true;
}
Hier mit implizitem und explizitem Iterator (aber nicht besonders sinnvoll):
Java:
boolean foreachAdd(String element) {
	for (String current : elements) {
		if (current.equals(element))
			return false;
	}
	elements.add(element);
	return true;
}
Java:
boolean iteratorAdd(String element) {
	final Iterator<String> iterator = elements.iterator();
	while (iterator.hasNext()) {
		if (iterator.next().equals(element))
			return false;
	}
	elements.add(element);
	return true;
}
 
Zuletzt bearbeitet:

Zurück
Oben