import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import org.junit.jupiter.api.Test;
/**
* Dubletten Test.
*
* @author Thomas Wenzlaff
*
*/
public class TestDoppelte {
@Test
void testDoppelteUndNullEntfernen() {
System.out.println("----> Array mit Orten:");
List<String> orte = new ArrayList<>();
orte.add(null);
orte.add(null); // doppelter Eintrag
orte.add("Hannover");
orte.add("Langenhagen");
orte.add("Bremen");
orte.add("Bremen"); // doppelter Eintrag
orte.stream().forEach(ort -> System.out.println(ort));
assertEquals(6, orte.size());
System.out.println("----> Entfernen von Dubletten mit HashSet:");
Set<String> orteSetOhneDublette = new HashSet<>(orte);
orteSetOhneDublette.stream().forEach(ort -> System.out.println(ort));
assertEquals(4, orteSetOhneDublette.size());
System.out.println("----> Wieder zurück als Liste ohne die null Werte und anders sortiert:");
List<String> kopie = orteSetOhneDublette.stream().filter(Objects::nonNull).collect(Collectors.toList());
kopie.stream().forEach(ort -> System.out.println(ort));
assertEquals(3, kopie.size());
}
}