Java- List의 Null을 체크하는 법

다양한 List의 Null 체크 방법들이 있는데, 어떤 방법이 효과적일지에 대해 정리해보도록 하자.

TL;DR

List의 Null Check를 할 때는
Spring에서 Apach Commons 라이브러리의 CollectionUtils.isEmpty()를 사용하자.


Null을 체크하는 다양한 방법들

  • CollectionUtils.isEmpty
  • List.isEmpty
  • List.size() == 0

CollectionUtils.isEmpty()

Java에서 List가 비어있는지 확인할 때 isEmpty()를 사용해야 한다.
Spring framework를 사용하는 경우, Apache Commons 라이브러리 중에서 CollectionUtils.isEmpty()로 Null 체크를 해준다.

1
2
3
4
5
6
7
8
9
10
public static boolean isEmpty(Collection<?> coll)
Null-safe check if the specified collection is empty.
Null returns true.

Parameters:
coll - the collection to check, may be null
Returns:
true if empty or null
Since:
3.2

List.isEmpty() VS List.size()

isEmpty()를 사용할 경우, 더욱 직관적이며
isEmpty()는 시간복잡도가 O(1)인 반면, size()O(N)이 되어,
size()로 계산할 경우 시간 비용이 많이 들게 된다.

List가 null인 것과 차이는 뭔가요?

List가 null이란 건 아직 인스턴스가 생성되지 않았다는 의미이므로,
메모리에서 참조하는 주소값이 없다는 것이다.

CollectionUtils.isEmpty(), List.isEmptyList.size() == 0의 의미는 인스턴스 생성은 된 상태(참조하는 주소값은 존재)인데, List의 안에 아무것도 들어있지 않다는 의미이다.


참고