Wie kann ich in Java in einer Array liste 2 Namen vergleichen und mir nur die Gesamtzahl von einzigartigen Namen ausgeben lassen?

1 Antwort

Wie kann ich in Java in einer Array liste 2 Namen vergleichen und mir nur die Gesamtzahl von einzigartigen Namen ausgeben lassen?

Kurz gesagt, du möchtest eine Liste ohne doppelte Einträge haben.

a) Du legst dir eine neue Liste an, iterierst über die alte und prüfst pro Iterationsschritt, ob der aktuelle Wert in der neuen Liste bereits enthalten ist. Wenn nicht, wird der aktuelle Wert ihr zugefügt.

Pseudocode:

items = [ 1, 2, 2, 3 ]
list = []

for item in items
  if list contains item
    continue
  push item into list

b) Nutze Set-Datenstrukturen, denn diese enthalten von sich aus keine doppelten Werte.

ArrayList<String> source = new ArrayList<>(); // your source list
Set<String> names = new HashSet<>(source);
String[] namesArray = new String[names.size()];
source = Arrays.<String>asList(names.toArray(namesArray));

c) Seit Java 8 geht es auch mit Streams:

List<String> names = source.stream().distinct().collect(Collectors.toList());