개념정리

여러 자료구조 - HashMap, HashSet, PriorityQueue

프로버티기 2025. 2. 8. 20:44

HashMap

// HashMap
HashMap<K,V> map = new HashMap<>();
map.put(K,V);
map.remove(K);
map.getOrDefault(K);
map.get(K);
Set<K> keys = map.keySet();
List<K> keyList = new ArrayList<>(keys);

// iterator 사용하여 순회  
Iterator<Map.Entry<K, V>> entry = map.entrySet().iterator();
while(entry.hasNext()) {
    Map.Enty<K, V> element = entry.next();
    System.out.println("KEY: " + element.getKey() + " VALUE: " + element.getValue());
}

HashSet

- 시간 복잡도 O(1) 

// HashSet<V> 
HashSet<E> set = new HashSet<>();
set.add(E);
set.remove(E);
set.contains(E);

비교대상 > List였지만, Set으로 바꾸고,

비교대상.contains(E); 로 List의 아이템인 E가 비교대상에 포함되어 있는지 확인할 수 있다.


PriorityQueue

PriorityQueue<E> pq = new PriorityQueue<>();
pq.add(E);
pq.size();
pq.isEmpty();
pq.peek();
pq.poll();


PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());