Kollekciók – TreeSet

package kollekciok.treeset;
import java.util.TreeSet; 
public class KollekciokTreeSet {
    public static void main(String[] args) {
/* TreeSet: NEM sorrendtartó, NEM ismétlődhetnek benne az elemek,
   NEM használ kulcsot. Viszont RENDEZETT!!!
A rendezés alapesetben oké, de ha pl. a magyar ékezetes karaktereket kell rendezni,
az már nem megy neki, csak ha megvalósítjuk az ún. Comparable interfészt. */
        TreeSet ffiNevek = new TreeSet();
        TreeSet<String> noiNevek = new TreeSet();
        ffiNevek.add("Balambér");   noiNevek.add("Pompónia");
        ffiNevek.add("Ödön");       noiNevek.add("Pompónia");
        ffiNevek.add("Jukundusz");  noiNevek.add("Immakuláta");
        ffiNevek.add("Fernándó");   noiNevek.add("Szüntüké");
        ffiNevek.add("Ödön");       noiNevek.add("Küllikki");
        System.out.println(ffiNevek);
        
        ffiNevek.add("Ábel");
        System.out.println(ffiNevek);

        ffiNevek.pollFirst(); //Eltávolítja az első elemet.
        ffiNevek.pollLast(); // Eltávolítja az utolsó elemet.
        System.out.println(ffiNevek);
        System.out.println(ffiNevek.first());
        System.out.println(ffiNevek.last());
        ffiNevek.remove("Jukundusz");
        System.out.println(ffiNevek);
        
        // A "Pompónia"-tól kisebb elemeket adja vissza.
        System.out.println(noiNevek.headSet("Pompónia"));
        
        // A "Pompónia"-tól nagyobb vagy egyenlő elemeket adja vissza.
        System.out.println(noiNevek.tailSet("Pompónia"));
        
        //Visszaadja a TreeSet legnagyobb elemét, amely az adott elemnél kisebb vagy  egyenlő. Ha ilyen elem nincs, akkor null-t ad vissza.
        System.out.println(noiNevek.floor("Pompó"));
        
        //Visszaadja a TreeSet legkisebb elemét, amely nagyobb, mint az adott elem. Ha ilyen elem nincs, akkor null-t ad vissza.
        System.out.println(noiNevek.higher("Pompónia"));
        
        // Fordított sorrend
        System.out.println("Fordított sorrend: " + noiNevek.descendingSet());
        System.out.println("---------------------");
        
//        TreeSet<String> szavak = new TreeSet(String.CASE_INSENSITIVE_ORDER);
        TreeSet<String> szavak = new TreeSet();
        szavak.add("asztal");
        szavak.add("szék");
        szavak.add("Asztal");
        szavak.add("sZéK");
        szavak.add("POLC");
        szavak.add("polc");
        System.out.println(szavak);
        
        System.out.println(szavak.subSet("asztal", "sZéK"));
        
        szavak.removeIf( sz -> sz.equals("polc") );
        System.out.println(szavak);      
    }
}