Kollekciók – TreeMap
package kollekciok.treemap;
import java.util.TreeMap;
//Az Ember osztály
class Ember {
int id;
String nev, szulHely;
int szulEv;
// Az Ember osztály alapértelmezett konstruktorának felülírása
public Ember(int id, String nev, String szulHely, int szulEv) {
this.id = id;
this.nev = nev;
this.szulHely = szulHely;
this.szulEv = szulEv;
}
@Override //Az Ember osztály alapértelmezett toString() mettódusának felülírása
public String toString() {
return id + ", " + nev + ", " + szulHely + ", " + szulEv;
}
}
public class KollekciokTreeMap {
public static void main(String[] args) {
/* NEM sorrendtartó, NEM ismétlődhetnek benne az elemek.
Viszont RENDEZETT és használ KULCSOT!!! */
TreeMap<Integer, Ember> tm = new TreeMap();
Ember ember1 = new Ember(1, "Kis Kövecs", "Debrecen", 1978);
Ember ember2 = new Ember(3, "Nagy Nepomuk", "Budapest", 1973);
Ember ember3 = new Ember(18, "Horváth Hamilkár", "Nyíregyháza", 1989);
Ember ember4 = new Ember(21, "Szabó Szeverián", "Nyíregyháza", 1990);
Ember ember5 = new Ember(104, "Kovács Kerubin", "Budapest", 2002);
tm.put(8, ember1);
tm.put(32, ember2);
tm.put(71, ember3);
tm.put(5, ember4);
tm.put(3, ember5);
System.out.println(tm);
System.out.println("Az első kulcs a TreeMap-ben: " + tm.firstKey());
System.out.println("Az első kulcs-érték pár a TreeMap-ben: " + tm.firstEntry());
// A 3-as kulcsú érték felülírása
tm.put(3, new Ember(121, "Lakatos Lizander", "Nyíregyháza", 2013));
System.out.println(tm);
/* Szabó Szeverián születési helyének és születési évének kiíratása.
Ehhez be kell járni a TreeMap-et, s az értékek között - amik most az Ember
osztály egy-egy példányai - kell keresni. */
for(Ember e : tm.values()){
if(e.nev.equals("Szabó Szeverián")){
System.out.println(e.szulHely + ", " + e.szulEv);
}
}
/* Lambda kifejezések:
(paraméter1, paraméter2) -> utasítás, vagy utasítás blokk
Az utasítás blokk esetén a kapcsos zárójeleket kell használni! */
tm.forEach((kulcs, ertek) -> System.out.println("kulcs: " + kulcs + ", ertek: " + ertek));
}
}