소개
이 랩에서는 Java 에서 리스트가 비어 있는지 효과적으로 확인하는 방법을 배우게 됩니다. 표준 isEmpty() 메서드를 살펴보고, size()를 사용하여 리스트 크기를 확인하며, 잠재적인 null 리스트 시나리오를 처리하여 견고하고 신뢰할 수 있는 코드를 작성하는 방법을 이해할 것입니다.
isEmpty() 를 사용하여 리스트 확인
이 단계에서는 Java 에서 isEmpty() 메서드를 사용하여 리스트가 비어 있는지 확인하는 방법을 배우겠습니다. 이는 프로그래밍에서 흔히 사용되는 작업이며, isEmpty()는 이를 수행하는 명확하고 효율적인 방법을 제공합니다.
먼저, ~/project 디렉토리에 ListCheck.java라는 새 Java 파일을 생성해 보겠습니다. 왼쪽의 파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "새 파일"을 선택한 다음 ListCheck.java를 입력하여 이 작업을 수행할 수 있습니다.
이제 편집기에서 ListCheck.java를 열고 다음 코드를 추가합니다.
import java.util.ArrayList;
import java.util.List;
public class ListCheck {
public static void main(String[] args) {
// Create an empty list
List<String> emptyList = new ArrayList<>();
// Create a list with elements
List<String> populatedList = new ArrayList<>();
populatedList.add("Apple");
populatedList.add("Banana");
// Check if the lists are empty using isEmpty()
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Is populatedList empty? " + populatedList.isEmpty());
}
}
이 코드를 자세히 살펴보겠습니다.
import java.util.ArrayList;및import java.util.List;: 이 줄은 리스트 작업을 위해 필요한 클래스를 가져옵니다.List<String> emptyList = new ArrayList<>();: 이 줄은String객체를 저장할 수 있는 새로운 빈 리스트를 생성합니다.List<String> populatedList = new ArrayList<>();: 이 줄은 다른 새 리스트를 생성합니다.populatedList.add("Apple");및populatedList.add("Banana");: 이 줄은populatedList에 요소를 추가합니다.System.out.println("Is emptyList empty? " + emptyList.isEmpty());: 이 줄은emptyList에서isEmpty()메서드를 호출합니다.isEmpty()메서드는 리스트에 요소가 없으면true를 반환하고, 그렇지 않으면false를 반환합니다. 그런 다음 결과가 콘솔에 출력됩니다.System.out.println("Is populatedList empty? " + populatedList.isEmpty());: 이 줄은populatedList에 대해 동일한 작업을 수행합니다.
ListCheck.java 파일을 저장합니다.
이제 WebIDE 하단의 터미널을 열고 ~/project 디렉토리에 있는지 확인합니다. 필요한 경우 cd ~/project 명령을 사용할 수 있습니다.
javac 명령을 사용하여 Java 코드를 컴파일합니다.
javac ListCheck.java
오류가 없으면 ListCheck.class 파일이 ~/project 디렉토리에 생성됩니다.
마지막으로, java 명령을 사용하여 컴파일된 Java 프로그램을 실행합니다.
java ListCheck
다음과 유사한 출력을 볼 수 있습니다.
Is emptyList empty? true
Is populatedList empty? false
이 출력은 isEmpty()가 빈 리스트와 요소가 있는 리스트를 올바르게 식별했음을 확인합니다. Java 에서 빈 리스트를 확인하는 데는 isEmpty()를 사용하는 것이 선호됩니다. 이는 가독성이 더 좋고 크기를 확인하는 것보다 잠재적으로 더 효율적이기 때문입니다.
size() 를 사용하여 리스트 크기 확인
이전 단계에서는 isEmpty()를 사용하여 리스트가 비어 있는지 확인하는 방법을 배웠습니다. isEmpty()는 리스트에 요소가 있는지 확인하는 데 유용하지만, 때로는 리스트에 정확히 몇 개의 요소가 있는지 알아야 할 필요가 있습니다. 이를 위해 Java 는 size() 메서드를 제공합니다.
이 단계에서는 ListCheck.java 파일을 수정하여 size() 메서드를 사용하고 작동 방식을 살펴보겠습니다.
WebIDE 편집기에서 ListCheck.java 파일을 엽니다 (아직 열려 있지 않은 경우). 이 파일은 ~/project 디렉토리에 있어야 합니다.
이제 main 메서드에 몇 줄을 추가하여 리스트의 크기를 출력해 보겠습니다. isEmpty()를 사용한 줄 뒤에 다음 줄을 추가합니다.
import java.util.ArrayList;
import java.util.List;
public class ListCheck {
public static void main(String[] args) {
// Create an empty list
List<String> emptyList = new ArrayList<>();
// Create a list with elements
List<String> populatedList = new ArrayList<>();
populatedList.add("Apple");
populatedList.add("Banana");
// Check if the lists are empty using isEmpty()
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Is populatedList empty? " + populatedList.isEmpty());
// Get and print the size of the lists using size()
System.out.println("Size of emptyList: " + emptyList.size());
System.out.println("Size of populatedList: " + populatedList.size());
}
}
두 줄을 새로 추가했습니다.
System.out.println("Size of emptyList: " + emptyList.size());: 이 줄은emptyList에서size()메서드를 호출합니다.size()메서드는 리스트의 요소 수를 정수로 반환합니다.System.out.println("Size of populatedList: " + populatedList.size());: 이 줄은populatedList에 대해 동일한 작업을 수행합니다.
ListCheck.java 파일을 저장합니다.
이제 ~/project 디렉토리의 터미널로 돌아갑니다. 수정된 Java 코드를 다시 컴파일해야 합니다.
javac ListCheck.java
컴파일이 성공하면 프로그램을 다시 실행합니다.
java ListCheck
이제 다음과 유사한 출력을 볼 수 있습니다.
Is emptyList empty? true
Is populatedList empty? false
Size of emptyList: 0
Size of populatedList: 2
보시다시피, size()는 emptyList에 0 개의 요소가 있고 populatedList에 2 개의 요소가 있다고 정확하게 보고했습니다.
리스트의 크기가 0 인지 확인하여 리스트가 비어 있는지 확인할 수 있지만 (list.size() == 0), 명확성과 가독성을 위해 일반적으로 isEmpty()를 사용하는 것이 좋습니다. 그러나 size()는 리스트를 반복하거나 항목 수에 따라 계산을 수행하는 경우와 같이 리스트에 정확히 몇 개의 요소가 있는지 알아야 할 때 필수적입니다.
Null 리스트 처리
이전 단계에서는 비어 있거나 요소가 포함된 리스트로 작업했습니다. 그러나 실제 프로그래밍에서는 리스트 변수가 null일 수 있습니다. null 참조는 변수가 메모리의 어떤 객체도 가리키지 않음을 의미합니다. null 리스트에서 isEmpty() 또는 size()와 같은 메서드를 호출하려고 하면 Java 에서 흔히 발생하는 오류인 NullPointerException이 발생합니다.
이 단계에서는 리스트가 비어 있는지 확인하거나 크기를 가져오기 전에 null 리스트를 안전하게 처리하는 방법을 배우겠습니다.
WebIDE 편집기에서 ListCheck.java 파일을 엽니다.
새 리스트 변수를 추가하고 null로 설정해 보겠습니다. 그런 다음 null을 확인하지 않고 메서드를 호출하려고 할 때 어떤 일이 발생하는지 보여드리겠습니다. main 메서드를 수정하여 다음 코드를 포함합니다.
import java.util.ArrayList;
import java.util.List;
public class ListCheck {
public static void main(String[] args) {
// Create an empty list
List<String> emptyList = new ArrayList<>();
// Create a list with elements
List<String> populatedList = new ArrayList<>();
populatedList.add("Apple");
populatedList.add("Banana");
// Create a null list
List<String> nullList = null;
// Check if the lists are empty using isEmpty()
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Is populatedList empty? " + populatedList.isEmpty());
// Get and print the size of the lists using size()
System.out.println("Size of emptyList: " + emptyList.size());
System.out.println("Size of populatedList: " + populatedList.size());
// --- This part will cause an error if uncommented ---
// System.out.println("Is nullList empty? " + nullList.isEmpty()); // This line will cause a NullPointerException
// System.out.println("Size of nullList: " + nullList.size()); // This line will also cause a NullPointerException
// ----------------------------------------------------
// Safely check for null before calling methods
System.out.println("\nSafely checking for null:");
if (nullList == null) {
System.out.println("nullList is null.");
} else {
System.out.println("Is nullList empty? " + nullList.isEmpty());
System.out.println("Size of nullList: " + nullList.size());
}
if (emptyList == null) {
System.out.println("emptyList is null.");
} else {
System.out.println("Is emptyList empty? " + emptyList.isEmpty());
System.out.println("Size of emptyList: " + emptyList.size());
}
}
}
다음과 같은 내용을 추가했습니다.
List<String> nullList = null;: 이 코드는 리스트 변수를 선언하지만 값을null로 설정합니다.NullPointerException을 발생시킬 주석 처리된 줄.if문:if (nullList == null). 이는null을 처리하는 데 중요한 부분입니다.nullList변수가null인지 확인한 다음 해당 변수에 대해 메서드를 호출하려고 시도합니다.null인 경우 메시지를 출력합니다.null이 아닌 경우isEmpty()및size()를 안전하게 호출할 수 있습니다.- 또한
emptyList에 대한 유사한 검사를 추가하여if조건이 null 이 아닌 리스트에서도 올바르게 작동하는지 보여주었습니다.
ListCheck.java 파일을 저장합니다.
터미널에서 수정된 코드를 컴파일합니다.
javac ListCheck.java
프로그램을 실행합니다.
java ListCheck
출력은 다음과 같아야 합니다.
Is emptyList empty? true
Is populatedList empty? false
Size of emptyList: 0
Size of populatedList: 2
Safely checking for null:
nullList is null.
Is emptyList empty? true
Size of emptyList: 0
nullList가 null인지 성공적으로 확인하고 NullPointerException을 피했음을 알 수 있습니다. 또한 검사가 emptyList에 대해 올바르게 작동하는지 확인했습니다.
리스트 (또는 모든 객체 참조) 에서 메서드를 호출하기 전에 null일 수 있는지 항상 기억하십시오. 이는 NullPointerException 오류를 방지하기 위한 Java 의 기본적인 관행입니다. 일반적인 패턴은 if (myList != null && !myList.isEmpty())로, 한 조건에서 리스트가 null 이 아니고 비어 있지 않은지 확인합니다.
요약
이 Lab 에서는 Java 에서 리스트가 비어 있는지 확인하는 방법을 배웠습니다. 먼저 리스트에 요소가 있는지 여부를 확인하는 간단하고 효율적인 방법을 제공하는 isEmpty() 메서드를 살펴보았습니다. 비어 있거나 채워진 예제 리스트를 만들고 isEmpty()를 사용하여 상태를 확인하고 부울 (boolean) 출력을 관찰했습니다.
또한 size() 메서드를 사용하여 리스트 크기를 0 과 비교하여 리스트가 비어 있는지 확인하는 방법을 살펴보았습니다. 이 메서드는 리스트의 요소 수를 반환하며, 크기가 0 이면 빈 리스트를 나타냅니다. 마지막으로, 비어 있는지 확인하기 전에 null 리스트를 처리하는 중요한 측면을 다루어 null 검사를 추가하여 NullPointerException을 방지하는 방법을 시연했습니다.



