[JAVA] HashSet

HashSet

1. ๊ฐœ๋…

  • HashMap์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„๋œ ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ
  • ์ค‘๋ณต ๋ถˆ๊ฐ€, ์ˆœ์„œ X, null ํ•œ ๊ฐœ ์ €์žฅ ๊ฐ€๋Šฅ
  • ๋‚ด๋ถ€์ ์œผ๋กœ HashMap<E, Object>๋กœ ๊ตฌํ˜„
  • add(E e)๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ map.put(e, DUMMY_VALUE)์ฒ˜๋Ÿผ ๋™์ž‘

2. ์„ ์–ธ

        HashSet<String> st = new HashSet<>();
        // ๊ถŒ์žฅ: ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์šฉ
        Set<String> set = new HashSet<>();

3. ์ฃผ์š” ๋ฉ”์†Œ๋“œ

๋ฉ”์„œ๋“œ ์„ค๋ช… ํ‰๊ท /์ตœ์•…
add(E e) ์š”์†Œ ์ถ”๊ฐ€ (์ค‘๋ณต์ด๋ฉด false ๋ฐ˜ํ™˜) O(1)/O(N)
contains(Object o) ํ•ด๋‹น ์š”์†Œ ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ O(1)/O(N)
remove(Object o) ์š”์†Œ ์ œ๊ฑฐ O(1)/O(N)
clear() ๋ชจ๋“  ์š”์†Œ ์ œ๊ฑฐ O(N)/O(N)
isEmpty() ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธ O(1)/O(1)
size() ์š”์†Œ ๊ฐœ์ˆ˜ ๋ฐ˜ํ™˜ O(1)/O(1)
iterator() ๋ฐ˜๋ณต์ž ๋ฐ˜ํ™˜ (ํ–ฅ์ƒ๋œ for๋ฌธ ๋“ฑ์— ์‚ฌ์šฉ) O(1)/O(N)

์ฝ”๋“œ

  1. add(E e)
         set.add("์ธ ํ‚ค์‹œ๋งˆ");
         set.add("์นด๊ฒŒ์•ผ๋งˆ");
         set.add("์นด๊ฒŒ์•ผ๋งˆ"); // ์ค‘๋ณต ๋ฌด์‹œ
         System.out.println(set);
    
         [์ธ ํ‚ค์‹œ๋งˆ, ์นด๊ฒŒ์•ผ๋งˆ]
    
  2. contains(o)
         if(set.contains("์นด๊ฒŒ์•ผ๋งˆ")) {
             System.out.println("์ œ์™• ์žˆ์Œ!");
         }
    
         ์ œ์™• ์žˆ์Œ!
    
  3. remove(o)
         set.remove("์นด๊ฒŒ์•ผ๋งˆ");
         System.out.println(set);
    
         [์ธ ํ‚ค์‹œ๋งˆ]
    
  4. clear()
         set.clear();
         System.out.println(set);
    
         []
    
  5. isEmpty()
         if(set.isEmpty()) {
             set.add("์ฟ ๋กœ์˜ค");
             set.add("์ผ„๋งˆ");
             System.out.println("๋น„์–ด์žˆ๋˜๊ฑฐ ์ฑ„์›€!!\n"+set);
         }
    
         ๋น„์–ด์žˆ๋˜๊ฑฐ ์ฑ„์›€!!
         [์ฟ ๋กœ์˜ค, ์ผ„๋งˆ]
    
  6. size()
         System.out.println("๋ช‡๊ฐœ ๋“ค์–ด์žˆ๋ƒ๋ฉด..."+set.size()+"๊ฐœ!");
    
         ๋ช‡๊ฐœ ๋“ค์–ด์žˆ๋ƒ๋ฉด...2๊ฐœ!
    
  7. iterator()
         // ์ผ๋ฐ˜ ๋ฐ˜๋ณต, for-each๋ฌธ
         for(String s : set) {
             System.out.println("์บ๋ฆญํ„ฐ: "+s);
         }
    		
         // ์‚ญ์ œ ๋“ฑ์ด ํ•„์š”ํ•  ๋•Œ - Iterator
         Iterator<String> it = set.iterator();
         while(it.hasNext()) {
             System.out.println(it.next());
             it.remove();
             System.out.println(set);
         }
    
         ์บ๋ฆญํ„ฐ: ์ฟ ๋กœ์˜ค
         ์บ๋ฆญํ„ฐ: ์ผ„๋งˆ
         ์ฟ ๋กœ์˜ค
         [์ผ„๋งˆ]
         ์ผ„๋งˆ
         []
    

Categories:

Updated:

Leave a comment