Set.isEmpty

Set이 비어있는지 확인합니다.

시그니처

boolean isEmpty()
반환값의미
true원소가 하나도 없음
false원소가 1개 이상 있음

동작 추적

Set<Integer> set = new HashSet<>();
[ 초기 상태 ]
set: [ ]

set.isEmpty();   // true
set.add(1);
[ 변경 후 ]
set: [1]

set.isEmpty();   // false
set.remove(1);
[ 변경 후 ]
set: [ ]

set.isEmpty();   // true

size() == 0 vs isEmpty()

// 둘 다 동일한 결과지만:

if (set.size() == 0) { ... }   // X 의도가 덜 명확
if (set.isEmpty())   { ... }   // O 권장

모든 컬렉션 인터페이스(List, Set, Map)가 isEmpty()를 제공. 동일한 컨벤션이라 일관성 측면에서도 권장됨.

자주 쓰는 패턴

BFS / DFS의 종료 조건

Set<Integer> visited = new HashSet<>();
Queue<Integer> queue = new LinkedList<>();
queue.add(start);

while (!queue.isEmpty()) {   // 큐가 비면 종료
    int cur = queue.poll();
    if (visited.contains(cur)) continue;
    visited.add(cur);
    // ...
}

작업 큐 처리

Set<String> tasks = new HashSet<>(initialTasks);

while (!tasks.isEmpty()) {
    String task = tasks.iterator().next();
    process(task);
    tasks.remove(task);
}

시간복잡도

연산복잡도
isEmpty()O(1)

CSLOG에서 보기