[java] 컬렉션 프레임워크의 null 값 처리

Java에서 컬렉션 프레임워크를 사용할 때, 때로는 null 값이 포함된 항목을 처리해야 할 때가 있습니다. 이 문제에 대해 어떻게 해결할 수 있는지 알아보겠습니다.

1. 컬렉션에 null 값 추가

ArrayList, LinkedList, HashSet 등의 컬렉션 클래스는 null 값을 허용합니다. 따라서 다음과 같이 null 값을 추가할 수 있습니다.

List<String> list = new ArrayList<>();
list.add(null);

HashSet의 경우에는 중복된 값을 허용하지 않기 때문에, null 값을 여러 번 추가해도 실제로는 하나의 null 값만 유지됩니다.

2. null 값 검사

null 값을 처리해야 하는 경우, 항상 null 값 검사를 해야 합니다. 컬렉션에 null 값이 있는지 확인하기 위해 다음과 같은 방법을 사용할 수 있습니다.

contains() 메소드

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add(null);

if (list.contains(null)) {
    // null 값이 포함되어 있음
}

3. null 값 제거

null 값을 제거하려면, remove() 메소드를 사용할 수 있습니다.

remove() 메소드

List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add(null);

list.remove(null); // null 값 제거

혹은, removeAll() 메소드를 사용하여 컬렉션에서 모든 null 값을 제거할 수도 있습니다.

removeAll() 메소드

List<String> list = new ArrayList<>();
list.add("apple");
list.add(null);
list.add("banana");
list.add(null);

list.removeAll(Collections.singleton(null)); // 모든 null 값 제거

4. null 값 대체

null 값 대신 다른 값을 사용하려면, replaceAll() 메소드를 사용할 수 있습니다.

replaceAll() 메소드

List<String> list = new ArrayList<>();
list.add("apple");
list.add(null);
list.add("banana");
list.add(null);

Collections.replaceAll(list, null, "orange"); // null 값을 "orange"로 대체

5. 주의사항

컬렉션 프레임워크에서 null 값을 다룰 때, 몇 가지 주의사항이 있습니다.

따라서, null 값을 다루는 경우에는 컬렉션 타입과 해당 메소드의 동작을 확인하는 것이 중요합니다.