Aseron

HashMap/TreeMap

May 7th, 2017
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.05 KB | None | 0 0
  1. import java.util.Map;
  2. import java.util.HashMap;
  3. import java.util.TreeMap;
  4.  
  5. public class Mapek {
  6.     //private Map<Integer, String> map = new HashMap<>();
  7.     private Map<String, Integer> map = new TreeMap<>();
  8.     /*a HashMap es a TreeMap kozott annyi a kulonbseg,
  9.     hogy a HashMap (kulcs alapjan) veletlenszeruen ad vissza,
  10.     a TreeSet pedig szintúgy kulcs alapján, de ABC sorrendben, illetve
  11.     szamtani sorrendben (0,1,2,3) ad vissza
  12.     */
  13.     /*Ugyanúgy hozod létre, mint egy listát, annyi különbséggel,
  14.     hogy a 2 típust adsz meg.
  15.     Az első típus, amit megadsz, (itt String) maga a kulcs/key,
  16.     a második típus meg (itt Integer) az érték/value.
  17.     itt nem map.add() van, hanem map.put(), ami két értéket vár
  18.     az első értékbe egy kulcsnak megadott típust (szóval ide ? megy a kulcs)
  19.     pld. map.put("?",4);
  20.     a másidikba meg a kulcs értékét. pld. map.put("négy",?);
  21.     miután ezeket bepakolgattad, van ez a speciális for ciklus, amit tudom,
  22.     hogy mindenki rühell, de ezzel kibaszott egyszerú bejárni, mivel
  23.     az iterátoros megoldás kb ennek a 3szorosa.
  24.     ez lenne iterátorosan:
  25.     Iterator<Map.Entry<KulcsTipus, ErtekTipus>> it = map.entrySet().iterator();
  26.     for (Iterator<Map.Entry<String, Integer>> it = map.entrySet().iterator(); it.hasNext(); ) {
  27.         Map.Entry<String,Integer> e = it.next();    
  28.     }
  29.  
  30.     szóval ezt felejtsd is el gyorsan xD
  31.     az én példám ugyanezt csinálja, csak gyorsabban és szebben :D
  32.     (egy videóban találtam ezt a megoldást amúgy)
  33.  
  34.    
  35.      */
  36.     public Mapek() {
  37.         // szóval itt adod hozzá a kulcsot és az értékét,
  38.         //ezeket egymás után bele is pakolgatja szépen
  39.         // nem kell indexekkel baszakodni
  40.         map.put("egy", 1);
  41.         map.put("negy", 4);
  42.         map.put("ketto", 2);
  43.         map.put("ot", 5);
  44.         map.put("harom", 3);
  45.        
  46.         /* most itt van ez a keySet(), ami a put-ban megadott kulcsokat tartalmazza
  47.          megadsz egy kulccsal azonos tipusu valtozot majd : es utana a keySet() metodus,
  48.          igy szepen minden ciklusban megkapja az x a keySet() epp soron kovetkezo elemet
  49.          EEEES ezutan jon a csoda, a map.get() metodus, aminek ha atadsz egy kulcsot,
  50.          akkor kidobja (még a put-ban írt) értéket pld.:
  51.          az elso ciklusban az x erteke "egy" lesz, amit ha atadsz a map.get()-nek,
  52.          akkor visszaadja a hozzá írt értéket, ami az int típusú 1
  53.          igy bekaphatja az iterator, itt tiszta folosleges hasznalni
  54.         */
  55.         for (String x : map.keySet()) {
  56.             System.out.println(x + " " + map.get(x));
  57.         }
  58.         /*
  59.         HashMap-es OUTPUT:
  60.        
  61.         harom 3
  62.         ot 5
  63.         egy 1
  64.         ketto 2
  65.         negy 4
  66.        
  67.        
  68.         TreeMap-es OUTPUT:
  69.         (itt abc sorrendbe teszi, de ha pld a kulcsunk integer típusu lenne, akkor szamtani sorrendbe tenné)
  70.         egy 1
  71.         harom 3
  72.         ketto 2
  73.         negy 4
  74.         ot 5
  75.        
  76.         */
  77.        
  78.     }
  79.  
  80. }
Add Comment
Please, Sign In to add comment