여러 Null 요소 처리
이전 단계에서는 리스트를 성공적으로 반복하고 null 요소의 인덱스를 식별했습니다. 이제 이를 확장하여 이러한 null 요소를 처리하는 방법을 보여드리겠습니다. "처리"는 프로그램의 논리에 따라 null 요소를 건너뛰거나, 기본값으로 바꾸거나, 특정 작업을 수행하는 등 다양한 의미를 가질 수 있습니다.
이 단계에서는 NullCheckList.java 프로그램을 다시 수정합니다. 이번에는 리스트를 반복하고 null 요소와 비교하여 null이 아닌 요소에 대해 다른 메시지를 출력합니다.
WebIDE 편집기에서 NullCheckList.java 파일을 엽니다. 기존 main 메서드를 다음 코드로 바꿉니다.
import java.util.List;
import java.util.ArrayList;
public class NullCheckList {
public static void main(String[] args) {
// Create a List and add some elements, including null
List<String> names = new ArrayList<>();
names.add("Alice");
names.add(null); // Adding a null element
names.add("Bob");
names.add("Charlie");
names.add(null); // Adding another null element
names.add("David");
System.out.println("Processing list elements:");
// Loop through the list using a for-each loop
for (String name : names) {
// Check if the element is null
if (name == null) {
System.out.println("Found a null element, skipping.");
} else {
// If the element is not null, process it
System.out.println("Processing name: " + name);
}
}
}
}
이 버전의 변경 사항을 살펴보겠습니다.
- 리스트에
null이 아닌 요소 하나 더 추가했습니다. ("David")
for (String name : names): 이는 향상된 for 루프 (for-each 루프라고도 함) 입니다. 인덱스를 사용하지 않고 컬렉션의 요소를 반복하는 편리한 방법입니다. 각 반복에서 변수 name은 names 리스트의 현재 요소를 저장합니다.
if (name == null): 여전히 == 연산자를 사용하여 현재 요소 (name) 가 null인지 확인합니다.
System.out.println("Found a null element, skipping.");: 요소가 null이면 건너뛰고 있음을 나타내는 메시지를 출력합니다. 실제 애플리케이션에서는 null 을 로깅하거나 기본값을 할당하는 등 다른 작업을 수행할 수 있습니다.
else { System.out.println("Processing name: " + name); }: 요소가 null이 아닌 경우 else 블록에 들어가 null이 아닌 이름을 처리하고 있음을 나타내는 메시지를 출력합니다.
파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
이제 ~/project 디렉토리의 터미널에서 수정된 프로그램을 컴파일하고 실행합니다.
javac NullCheckList.java
java NullCheckList
null이 아닌 이름을 처리하고 null 요소가 발견될 때를 나타내는 출력을 볼 수 있습니다.
Processing list elements:
Processing name: Alice
Found a null element, skipping.
Processing name: Bob
Processing name: Charlie
Found a null element, skipping.
Processing name: David
이 예제는 반복 중에 null 요소를 처리하는 기본적인 방법을 보여줍니다. 특정 요구 사항에 따라 null을 기본 문자열로 바꾸거나, 리스트에서 null 요소를 제거하거나, 다른 작업을 수행할 수 있습니다. 핵심은 요소 사용을 시도하기 전에 null을 확인하는 것입니다. null 객체에서 메서드를 호출하려고 하면 NullPointerException이 발생하기 때문입니다.