소개
이 랩에서는 Java 에서 Set이 비어 있는지 확인하는 방법을 배우게 됩니다. Set에 요소가 있는지 여부를 결정하는 간단하고 효율적인 방법인 표준 isEmpty() 메서드를 살펴보겠습니다.
또한 size() 메서드를 사용하여 Set 의 크기를 확인하는 방법과 null Set 을 처리할 때 발생할 수 있는 NullPointerException을 처리하는 방법을 배우게 됩니다. 이 랩을 마치면 다양한 시나리오에서 Java Set 의 비어 있음을 확인하는 데 능숙해질 것입니다.
Set 확인에 isEmpty() 사용
이 단계에서는 Java 에서 isEmpty() 메서드를 사용하여 Set이 비어 있는지 확인하는 방법을 배우겠습니다. Set은 중복된 요소를 포함할 수 없는 컬렉션입니다. isEmpty() 메서드는 컬렉션에 요소가 있는지 여부를 결정하는 간단하고 효율적인 방법입니다.
먼저,
~/project디렉토리에SetCheck.java라는 새 Java 파일을 생성해 보겠습니다. 왼쪽의 파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "새 파일"을 선택한 다음SetCheck.java를 입력하여 이 작업을 수행할 수 있습니다.편집기에서
SetCheck.java파일을 열고 다음 코드를 추가합니다.import java.util.HashSet; import java.util.Set; public class SetCheck { public static void main(String[] args) { // Create a new HashSet Set<String> fruits = new HashSet<>(); // Check if the set is empty using isEmpty() boolean isEmptyBeforeAdd = fruits.isEmpty(); System.out.println("Is the fruits set empty before adding elements? " + isEmptyBeforeAdd); // Add some elements to the set fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); // Check if the set is empty after adding elements boolean isEmptyAfterAdd = fruits.isEmpty(); System.out.println("Is the fruits set empty after adding elements? " + isEmptyAfterAdd); } }이 코드의 새로운 부분을 자세히 살펴보겠습니다.
import java.util.HashSet;및import java.util.Set;: 이 줄은Set및HashSet을 사용하기 위해 필요한 클래스를 가져옵니다.Set<String> fruits = new HashSet<>();: 이 줄은fruits라는 새HashSet객체를 생성합니다. 이 Set 이String객체를 저장하도록 지정하기 위해<String>을 지정합니다.boolean isEmptyBeforeAdd = fruits.isEmpty();: 이 줄은fruitsSet 에서isEmpty()메서드를 호출하고 결과를isEmptyBeforeAdd라는 부울 변수에 저장합니다 (true또는false).fruits.add("Apple");: 이 줄은 문자열 "Apple"을fruitsSet 에 추가합니다.boolean isEmptyAfterAdd = fruits.isEmpty();: 이 줄은 요소를 추가한 후 Set 이 다시 비어 있는지 확인합니다.
SetCheck.java파일을 저장합니다 (Ctrl+S 또는 Cmd+S).이제 Java 프로그램을 컴파일해 보겠습니다. WebIDE 하단의 터미널을 열고
~/project디렉토리에 있는지 확인합니다. 그런 다음 다음 명령을 실행합니다.javac SetCheck.java컴파일이 성공하면 아무런 출력도 표시되지 않습니다.
마지막으로
java명령을 사용하여 컴파일된 프로그램을 실행합니다.java SetCheck다음과 유사한 출력이 표시됩니다.
Is the fruits set empty before adding elements? true Is the fruits set empty after adding elements? false이 출력은
isEmpty()메서드가 요소를 추가하기 전과 후에 Set 의 상태를 올바르게 보고했음을 확인합니다.
size() 를 사용하여 Set 크기 확인
이전 단계에서는 isEmpty()를 사용하여 Set이 비어 있는지 확인하는 방법을 배웠습니다. 또 다른 일반적인 작업은 Set에 몇 개의 요소가 있는지 확인하는 것입니다. 이를 위해 size() 메서드를 사용합니다. size() 메서드는 현재 Set 에 있는 요소의 수를 반환합니다.
WebIDE 편집기에서
~/project디렉토리의SetCheck.java파일을 엽니다.size()메서드 호출을 포함하도록main메서드를 수정합니다. 기존main메서드를 다음 코드로 바꿉니다.import java.util.HashSet; import java.util.Set; public class SetCheck { public static void main(String[] args) { // Create a new HashSet Set<String> fruits = new HashSet<>(); // Check the size of the set before adding elements int sizeBeforeAdd = fruits.size(); System.out.println("Size of the fruits set before adding elements: " + sizeBeforeAdd); // Add some elements to the set fruits.add("Apple"); fruits.add("Banana"); fruits.add("Orange"); // Check the size of the set after adding elements int sizeAfterAdd = fruits.size(); System.out.println("Size of the fruits set after adding elements: " + sizeAfterAdd); // Add a duplicate element (Sets do not allow duplicates) fruits.add("Apple"); // Check the size again int sizeAfterDuplicateAdd = fruits.size(); System.out.println("Size of the fruits set after adding a duplicate: " + sizeAfterDuplicateAdd); } }다음과 같은 내용을 추가했습니다.
int sizeBeforeAdd = fruits.size();: 이 줄은fruitsSet 에서size()메서드를 호출하고 반환된 정수 값 (요소 수) 을sizeBeforeAdd라는 변수에 저장합니다.int sizeAfterAdd = fruits.size();: 처음 세 개의 요소를 추가한 후 크기를 확인합니다.fruits.add("Apple");: "Apple"을 다시 추가하려고 시도합니다. "Apple"이 이미 Set 에 있으므로 이 작업은 Set 의 내용을 변경하지 않습니다.int sizeAfterDuplicateAdd = fruits.size();: 중복을 추가하려는 시도 후 크기를 확인합니다.
SetCheck.java파일을 저장합니다.터미널에서 수정된 Java 프로그램을 컴파일합니다.
javac SetCheck.java다시, 출력이 없으면 컴파일이 성공했음을 나타냅니다.
프로그램을 실행합니다.
java SetCheck다음과 유사한 출력이 표시됩니다.
Size of the fruits set before adding elements: 0 Size of the fruits set after adding elements: 3 Size of the fruits set after adding a duplicate: 3이 출력은
size()메서드가 요소 수를 올바르게 보고하고 중복 요소를 추가해도 Set 의 크기가 증가하지 않음을 보여줍니다.
Null Set 처리
이전 단계에서는 제대로 초기화된 Set을 사용했습니다. 그러나 실제 프로그래밍에서는 Set 변수가 null인 상황을 만날 수 있습니다. null 객체에서 isEmpty() 또는 size()와 같은 메서드를 호출하려고 하면 Java 에서 흔히 발생하는 오류인 NullPointerException이 발생합니다. 이러한 경우를 적절하게 처리하는 것이 중요합니다.
WebIDE 편집기에서
~/project디렉토리의SetCheck.java파일을 엽니다.nullSet 을 처리하는 방법을 보여주도록main메서드를 수정합니다. 기존main메서드를 다음 코드로 바꿉니다.import java.util.HashSet; import java.util.Set; public class SetCheck { public static void main(String[] args) { // Declare a Set variable but initialize it to null Set<String> colors = null; // Attempting to call isEmpty() or size() here would cause a NullPointerException // System.out.println("Is the colors set empty? " + colors.isEmpty()); // This would crash! // To safely check if a set is null or empty, we first check for null if (colors == null) { System.out.println("The colors set is null."); } else { // If it's not null, we can safely check if it's empty if (colors.isEmpty()) { System.out.println("The colors set is empty."); } else { System.out.println("The colors set is not empty and has " + colors.size() + " elements."); } } // Now, let's initialize the set and add elements colors = new HashSet<>(); colors.add("Red"); colors.add("Blue"); // Check again after initialization and adding elements if (colors == null) { System.out.println("The colors set is null."); } else { if (colors.isEmpty()) { System.out.println("The colors set is empty."); } else { System.out.println("The colors set is not empty and has " + colors.size() + " elements."); } } } }이 업데이트된 코드에서:
Set<String> colors = null;:Set변수colors를 선언하지만 명시적으로null로 설정합니다.NullPointerException을 발생시킬 줄을 주석 처리했습니다.if (colors == null): 이것이 중요한 확인입니다.colors변수에서 메서드를 호출하기 전에 먼저null인지 확인합니다.colors가null이 아닌 경우colors.isEmpty()를 사용하여 비어 있는지 확인하거나colors.size()를 사용하여 크기를 가져옵니다.- 그런 다음
colors를 새HashSet으로 초기화하고 요소를 추가하여 Set 이 null 이 아니고 비어 있지 않은 경우의 다른 출력을 표시합니다.
SetCheck.java파일을 저장합니다.터미널에서 프로그램을 컴파일합니다.
javac SetCheck.java프로그램을 실행합니다.
java SetCheck다음과 유사한 출력이 표시됩니다.
The colors set is null. The colors set is not empty and has 2 elements.이것은 메서드에 액세스하려고 시도하기 전에
Set변수에 대한 잠재적인null값을 안전하게 처리하는 방법을 보여줍니다. 초기화되지 않았을 수 있는 객체 참조를 처리할 때는 항상 먼저null을 확인하십시오.
요약
이 Lab 에서는 Java 에서 Set이 비어 있는지 확인하는 방법을 배웠습니다. 이 확인을 수행하는 표준적이고 가장 효율적인 방법인 isEmpty() 메서드를 사용하는 것으로 시작했습니다. HashSet을 생성하고, 요소를 추가하기 전과 후에 비어 있는지 상태를 확인했으며, isEmpty()의 부울 출력을 관찰했습니다. 이는 Set 에 요소가 있는지 확인하기 위한 isEmpty()의 기본적인 사용법을 보여주었습니다.



