package VorlesungsFolien.SortierenmitComparatoren_Comparable;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashSet;
import java.util.TreeSet;

public class Main  {
	
	public static void main(String[] args) {
					//1.Ungeordnet//
		
		/* Also wenn ich [1,2,4,5] speicher,
		 * kann das sein, dass ich die Zahlen als Ausgabe so
		 * kriege: [2,4,5,1] oder [4,5,1,2] etc...
		 * 
		 */
		
		HashSet<Integer> set = new HashSet<>();
        set.add(1);
        set.add(1);
        set.add(2);

        // Die Reihenfolge ist nicht garantiert
        System.out.println("Unordered Set: " + set);
        
        
        //####################################################################
        
        //2. Geordnet//
        
        /* Die Ausgabe ist immer: [2,1,4]
         * => eine geordnete Liste kann (muss aber nicht) sortiert sein
         */
        ArrayList<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(1);
        list.add(4);

        // Die Reihenfolge bleibt gleich wie eingefügt
        System.out.println("Ordered List: " + list);
        
        
        
        
      //####################################################################
        /* sortiert (sorted) → Die Reihenfolge der Elemente folgt einem Sortierkriterium
         * => eine sortierte Collection ist immer geordnet
         * => eine geordnete Liste kann (muss aber nicht) sortiert sein
         */
        TreeSet<Integer> sortedSet = new TreeSet<>();
        sortedSet.add(1);
        sortedSet.add(4);
        sortedSet.add(3);
        sortedSet.add(4);

        // Elemente werden alphabetisch sortiert
        System.out.println("Sorted Set: " + sortedSet);
     
     

    }

	
}
