Advertisement
Aseron

HashSet/TreeSet

May 7th, 2017
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.74 KB | None | 0 0
  1. import java.util.Set;
  2. import java.util.HashSet;
  3. import java.util.TreeSet;
  4. import java.util.Iterator;
  5.  
  6. /* a halmazok és a listek kozott annyi a kulonbseg,
  7. hogy a halmazokban MINDEN csak egyszer szerepelhet!!!
  8. */
  9. public class Halmaz {
  10.  
  11.     // mint Linked- vagy ArrayListnél
  12.     Set<Integer> halmaz;
  13.    
  14.    public Halmaz(){
  15.    
  16.        // halmaz = new TreeSet<>(); (sorrendet teremt a megadott elemek koreben)
  17.        halmaz = new HashSet<>(); // <- ("veletlenszeruen" bassza ki az elemeket)
  18.        
  19.        // itt 1-6-ig a szamokat belerakosgatom a halmazba
  20.        for(int i = 1; i <= 6; i++){
  21.            halmaz.add(i);
  22.        }
  23.        
  24.        /* ÍGY itt már hiába pakolgatom bele 1-6-ig a számokat,
  25.        hiszen 1-6-ig már minden szám szerepel a halmazomban !!!4!
  26.        */
  27.        halmaz.add(1);
  28.        halmaz.add(2);
  29.        halmaz.add(3);
  30.        halmaz.add(4);
  31.        halmaz.add(5);
  32.        halmaz.add(6);
  33.        // csak innentol fognak beleirodni a szamok a halmazba, mivel ezek meg nem szerepeltek
  34.        halmaz.add(412);
  35.        halmaz.add(11111);
  36.        halmaz.add(412442);
  37.        halmaz.add(11);
  38.        
  39.        /*
  40.        az iterátort MINDIG csak azután hozd létre,
  41.        miután már MINDEN benne van a halmazban!!!
  42.        */
  43.        Iterator<Integer> it = halmaz.iterator();
  44.        /*
  45.        a it.hasNext() metodus leellenorzi, hogy van e kovetkezo eleme a halmaznak
  46.        ha van, akkor println-nel kiiratod az aktualisat,
  47.        ill egyben a kovetkezore is leptetsz az it.next()-tel
  48.        */
  49.        while(it.hasNext()){
  50.            System.out.print(it.next()+", ");
  51.        
  52.        }
  53.        /*
  54.        persze megint használhatnánk a speciális for ciklusunkat, ami így nézne ki:
  55.         for(int x : halmaz){
  56.             System.out.print(x+", ");
  57.        }
  58.        */
  59.        
  60.        /*
  61.        HashSet OUTPUT:
  62.        
  63.        1, 2, 3, 4, 5, 6, 11111, 11, 412, 412442,
  64.        
  65.        TreeSet OUTPUT:
  66.        (itt, szamok eseteben novekvo - vagy betuk eseten abc-s - sorrendben tarolja az elemeket)
  67.        
  68.        1, 2, 3, 4, 5, 6, 11, 412, 11111, 412442,
  69.        */
  70.        
  71.        
  72.        
  73.        
  74.        
  75.        /*
  76.        ÉRDEKESSÉG:
  77.        
  78.        Az eddig tanultak alapján az ITERÁTONAK amúgy csak a LISTÁKNÁL van jelentős szerepe!
  79.        MIVEL! ha mondjuk egy listádban 3x szerepel az "egy" string,
  80.        és te egy ciklussal bejárod a listát abból a célból, hogy torold azokat az elemeket,
  81.        amik egyenlőek "egy"-el, akkor csak a legelsőt fogja törölni! (a pointerezés miatt)
  82.        Iterátoros megvalósításnál ez a "probléma" kiküszöbölődik!
  83.        Iterátor segítségével már minden "egy" törlődni fog a listádból!
  84.        */
  85.        
  86.        
  87.    
  88.    }
  89.    
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement