package UE02_100924_Collections_TreeSet.theorie;

import java.util.*;

public class Set_Main {
    public static void main(String[] args) {
        List<String> names1 = new ArrayList<>();

        names1.add("Karl");
        names1.add("Karl");
        names1.add("Karl");
        names1.add("Karl");
        names1.add("Franz");

        System.out.println(names1);

        //Ein Set verhindert Duplikate
        //TreeSet sortiert Einträge nach ihrer natürlichen Ordnung
        Set<String> names2 = new TreeSet<>(names1);
        //names2.addAll(names1);
        System.out.println(names2);

        //Zugriff auf Elemente - kein Index
        names2.remove("Otto");
        System.out.println(names2);
        for (String s:names2) {
            System.out.println(s.hashCode());
        }
        Comparator <Mensch> mComp = new Comparator<Mensch>() {
            @Override
            public int compare(Mensch o1, Mensch o2) {
                int vergleich = o1.vor.compareTo(o2.vor);
                if (vergleich != 0)
                    return vergleich;

                //zweites Kriterium: Nachname
                vergleich = o1.nach.compareTo(o2.nach);
                if (vergleich != 0)
                    return vergleich;

                vergleich = o1.alter-o2.alter;
                return vergleich;
            }
        };

        Set <Mensch> people =  new TreeSet<>(mComp);

        people.add(new Mensch("Max","Mustermann", 22));
        people.add(new Mensch("Max","Mustermann", 23));
        people.add(new Mensch("Christian","Klein", 99));

        System.out.println(people);



    }
}
