Set
은 중복 없는 데이터를 저장하는 자료구조다
HashSet<Integer> set = new HashSet<>();
set.add(1);
set.add(2);
set.add(1); // 중복, 추가 안됨
System.out.println(set.size()); // 2
// 존재 여부 확인
if (set.contains(1)) { } // O(1)
// 삭제
set.remove(1); // O(1)
TreeSet<Integer> set = new TreeSet<>();
set.add(5);
set.add(1);
set.add(3);
// 저장 순서: [1, 3, 5] 자동 정렬됨
// 유용한 메서드들
set.first(); // 1 (최솟값)
set.last(); // 5 (최댓값)
set.lower(3); // 1 (3보다 작은 수 중 최대)
set.higher(3); // 5 (3보다 큰 수 중 최소)
set.floor(4); // 3 (4 이하인 수 중 최대)
set.ceiling(2); // 3 (2 이상인 수 중 최소)
// 역순 정렬
TreeSet<Integer> set2 = new TreeSet<>(Collections.reverseOrder());
HashMap<String, Integer> map = new HashMap<>();
// 추가/수정
map.put("apple", 1);
map.put("banana", 2);
map.put("apple", 3); // 덮어쓰기, apple의 값이 3으로 변경
// 조회
map.get("apple"); // 3
map.get("grape"); // null (없으면 null 반환)
map.getOrDefault("grape", 0); // 0 (없으면 기본값 반환)
// 존재 여부
map.containsKey("apple"); // true
map.containsValue(2); // true
// 삭제
map.remove("apple");
// 크기
map.size();
TreeMap<Integer, String> map = new TreeMap<>();
map.put(3, "three");
map.put(1, "one");
map.put(2, "two");
// Key 순서: 1, 2, 3 (자동 정렬)