소개
이 랩에서는 Java 에서 Map이 비어 있는지 확인하는 방법을 배우게 됩니다. 이 일반적인 작업에 대한 다양한 방법을 살펴보고, 간단한 isEmpty() 메서드부터 시작합니다. 또한 size() 메서드를 사용하여 맵의 크기를 확인하는 방법과, 잠재적인 NullPointerException 오류를 방지하기 위해 맵 자체가 null 인 경우를 처리하는 방법을 배우게 됩니다. 이 랩을 마치면 다양한 시나리오에서 Java Map 의 비어있음을 능숙하게 판단할 수 있게 됩니다.
isEmpty() 를 사용하여 Map 확인
이 단계에서는 Java 에서 isEmpty() 메서드를 사용하여 Map이 비어 있는지 확인하는 방법을 배우겠습니다. Map은 키 - 값 쌍의 컬렉션이며, 비어 있는지 확인하는 것은 일반적인 작업입니다.
먼저, ~/project 디렉토리에 MapCheck.java라는 새 Java 파일을 생성해 보겠습니다. 왼쪽의 파일 탐색기에서 마우스 오른쪽 버튼을 클릭하고 "New File"을 선택한 다음 MapCheck.java를 입력하여 이 작업을 수행할 수 있습니다.
이제 편집기에서 MapCheck.java 파일을 열고 다음 코드를 추가합니다.
import java.util.HashMap;
import java.util.Map;
public class MapCheck {
public static void main(String[] args) {
// Create an empty Map
Map<String, Integer> emptyMap = new HashMap<>();
// Check if the map is empty using isEmpty()
boolean isEmpty = emptyMap.isEmpty();
// Print the result
System.out.println("Is the map empty? " + isEmpty);
// Create a non-empty Map
Map<String, Integer> nonEmptyMap = new HashMap<>();
nonEmptyMap.put("one", 1);
nonEmptyMap.put("two", 2);
// Check if the non-empty map is empty
boolean isNonEmpty = nonEmptyMap.isEmpty();
// Print the result
System.out.println("Is the non-empty map empty? " + isNonEmpty);
}
}
코드를 자세히 살펴보겠습니다.
import java.util.HashMap;및import java.util.Map;: 이 줄은 Map 작업을 위해 필요한 클래스를 가져옵니다.Map<String, Integer> emptyMap = new HashMap<>();: 이는 새롭고 빈HashMap을 생성합니다.HashMap은Map인터페이스의 일반적인 구현입니다. 키는String이고 값은Integer가 되도록 지정합니다.boolean isEmpty = emptyMap.isEmpty();: 여기에서isEmpty()메서드를 사용합니다. 맵에 키 - 값 매핑이 없으면true를 반환하고, 그렇지 않으면false를 반환합니다. 결과는 부울 변수isEmpty에 저장됩니다.System.out.println("Is the map empty? " + isEmpty);: 이는 확인 결과를 콘솔에 출력합니다.- 그런 다음 코드는
nonEmptyMap으로 프로세스를 반복하여 맵이 비어 있지 않을 때isEmpty()가 어떻게 작동하는지 보여줍니다.
MapCheck.java 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
이제 WebIDE 하단의 터미널을 엽니다. ~/project 디렉토리에 있는지 확인합니다.
javac 명령을 사용하여 Java 코드를 컴파일합니다.
javac MapCheck.java
오류가 없으면 ~/project 디렉토리에 MapCheck.class 파일이 생성됩니다.
마지막으로 java 명령을 사용하여 컴파일된 Java 프로그램을 실행합니다.
java MapCheck
다음 출력을 볼 수 있습니다.
Is the map empty? true
Is the non-empty map empty? false
이 출력은 isEmpty()가 빈 맵과 비어 있지 않은 맵을 올바르게 식별했음을 확인합니다. isEmpty()를 사용하는 것은 명확하고 효율적이므로 맵이 비어 있는지 확인하는 권장 방법입니다.
size() 를 사용하여 Map 크기 확인
이 단계에서는 size() 메서드를 사용하여 Map에 있는 키 - 값 매핑의 수를 얻는 방법을 배우겠습니다. 이는 맵에 현재 저장된 요소의 수를 알아야 할 때 유용합니다.
이전 단계에서 생성한 MapCheck.java 파일을 계속 사용합니다. WebIDE 편집기에서 MapCheck.java를 엽니다.
이제 맵의 크기를 확인하는 내용을 포함하도록 main 메서드를 수정해 보겠습니다. main 메서드의 기존 코드를 다음으로 바꿉니다.
import java.util.HashMap;
import java.util.Map;
public class MapCheck {
public static void main(String[] args) {
// Create an empty Map
Map<String, Integer> emptyMap = new HashMap<>();
// Check the size of the empty map using size()
int emptySize = emptyMap.size();
// Print the result
System.out.println("Size of the empty map: " + emptySize);
// Create a non-empty Map
Map<String, Integer> nonEmptyMap = new HashMap<>();
nonEmptyMap.put("one", 1);
nonEmptyMap.put("two", 2);
nonEmptyMap.put("three", 3); // Add one more element
// Check the size of the non-empty map
int nonEmptySize = nonEmptyMap.size();
// Print the result
System.out.println("Size of the non-empty map: " + nonEmptySize);
}
}
변경 사항을 살펴보겠습니다.
int emptySize = emptyMap.size();: 이 줄은emptyMap에서size()메서드를 호출합니다.size()메서드는 맵에 있는 키 - 값 쌍의 수를 정수로 반환합니다. 결과는 정수 변수emptySize에 저장됩니다.System.out.println("Size of the empty map: " + emptySize);: 이는 빈 맵의 크기를 출력합니다.- 또한 크기가 어떻게 변경되는지 보여주기 위해
nonEmptyMap에 추가 요소 ("three", 3) 를 추가했습니다. int nonEmptySize = nonEmptyMap.size();: 이는nonEmptyMap에서size()를 호출하여 크기를 가져옵니다.System.out.println("Size of the non-empty map: " + nonEmptySize);: 이는 비어 있지 않은 맵의 크기를 출력합니다.
MapCheck.java 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
이제 터미널을 열고 ~/project 디렉토리에 있는지 확인합니다.
수정된 Java 코드를 컴파일합니다.
javac MapCheck.java
컴파일이 성공하면 프로그램을 실행합니다.
java MapCheck
다음 출력을 볼 수 있습니다.
Size of the empty map: 0
Size of the non-empty map: 3
이 출력은 size()가 빈 맵과 비어 있지 않은 맵 모두에서 요소 수를 올바르게 보고했음을 보여줍니다. size() 메서드는 Java Map에 있는 현재 항목 수를 결정하는 간단하고 효과적인 방법입니다.
Null Map 처리
이전 단계에서는 비어 있거나 요소가 포함된 맵으로 작업했습니다. 그러나 Map 변수가 null인 경우 어떻게 되는지 고려하는 것이 중요합니다. null 참조는 변수가 메모리의 어떤 객체도 가리키지 않음을 의미합니다. null 맵에서 isEmpty() 또는 size()와 같은 메서드를 호출하려고 하면 Java 에서 흔히 발생하는 오류인 NullPointerException이 발생합니다.
이 단계에서는 비어 있는지 또는 크기를 확인하기 전에 잠재적인 null 맵 참조를 안전하게 처리하는 방법을 배우겠습니다.
WebIDE 편집기에서 MapCheck.java 파일을 다시 엽니다.
null 맵을 시연하고 처리하는 코드를 추가해 보겠습니다. main 메서드를 수정하여 다음을 포함합니다.
import java.util.HashMap;
import java.util.Map;
public class MapCheck {
public static void main(String[] args) {
// Create an empty Map
Map<String, Integer> emptyMap = new HashMap<>();
// Check the size of the empty map using size()
int emptySize = emptyMap.size();
// Print the result
System.out.println("Size of the empty map: " + emptySize);
// Create a non-empty Map
Map<String, Integer> nonEmptyMap = new HashMap<>();
nonEmptyMap.put("one", 1);
nonEmptyMap.put("two", 2);
nonEmptyMap.put("three", 3); // Add one more element
// Check the size of the non-empty map
int nonEmptySize = nonEmptyMap.size();
// Print the result
System.out.println("Size of the non-empty map: " + nonEmptySize);
// Declare a Map variable but don't initialize it (it will be null)
Map<String, Integer> nullMap = null;
// --- Handling the null map ---
// Check if the map is null before calling methods
if (nullMap == null) {
System.out.println("The nullMap is null.");
} else {
// This block will not be executed for nullMap
System.out.println("Is the nullMap empty? " + nullMap.isEmpty());
System.out.println("Size of the nullMap: " + nullMap.size());
}
// A safer way to check if a map is empty (handles null)
boolean isNullMapEmpty = (nullMap == null || nullMap.isEmpty());
System.out.println("Is the nullMap considered empty (including null)? " + isNullMapEmpty);
// A safer way to get the size (handles null)
int nullMapSize = (nullMap == null) ? 0 : nullMap.size();
System.out.println("Size of the nullMap (handling null): " + nullMapSize);
}
}
다음은 추가한 내용입니다.
Map<String, Integer> nullMap = null;: 이는Map변수를 선언하지만 명시적으로null로 설정합니다.if (nullMap == null) { ... }: 이는null을 처리하는 데 중요한 부분입니다.nullMap변수에 대해 메서드를 호출하기 전에null인지 확인합니다.null인 경우 메시지를 출력합니다.null이 아닌 경우else블록이 실행되고isEmpty()및size()를 안전하게 호출할 수 있습니다.boolean isNullMapEmpty = (nullMap == null || nullMap.isEmpty());: 이는 맵 참조 자체가null인 경우를 포함하여 맵이 효과적으로 "비어" 있는지 확인하는 일반적인 패턴입니다.||(OR) 연산자는nullMap == null이 true 이면 전체 표현식이 true 이고nullMap.isEmpty()가 평가되지 않아NullPointerException을 방지합니다.int nullMapSize = (nullMap == null) ? 0 : nullMap.size();: 이는 삼항 연산자 (? :) 를 사용하여 크기를 안전하게 가져옵니다.nullMap이null이면 표현식은0으로 평가됩니다. 그렇지 않으면nullMap.size()로 평가됩니다.
MapCheck.java 파일을 저장합니다 (Ctrl+S 또는 Cmd+S).
터미널에서 수정된 코드를 컴파일합니다.
javac MapCheck.java
프로그램을 실행합니다.
java MapCheck
다음과 유사한 출력을 볼 수 있습니다.
Size of the empty map: 0
Size of the non-empty map: 3
The nullMap is null.
Is the nullMap considered empty (including null)? true
Size of the nullMap (handling null): 0
nullMap에 대한 else 블록 내의 줄이 실행되지 않았고, 오류를 발생시키지 않고 nullMap이 null 인지 확인하고 크기를 얻는 데 성공했음을 알 수 있습니다 (null 을 크기 0 으로 처리).
null 참조를 처리하는 것은 NullPointerException을 방지하고 프로그램을 더 강력하게 만들기 위해 Java 에서 매우 중요합니다. 변수에 대해 메서드를 호출하기 전에 변수가 null일 수 있는지 항상 고려하십시오.
요약
이 Lab 에서는 Java 에서 Map이 비어 있는지 확인하는 방법을 배웠습니다. 우리는 이 작업을 위한 주요 메서드인 isEmpty()를 탐구했으며, 이는 맵에 키 - 값 쌍이 있는지 여부를 직접 나타냅니다. 이 메서드를 새로 생성된 빈 맵과 데이터로 채워진 맵 모두에 적용하여 간단한 사용법과 반환되는 부울 결과를 확인했습니다.
기본적인 isEmpty() 검사 외에도, 맵의 크기가 0 인지 확인하기 위해 size()를 사용하는 것과 같은 대체 메서드도 다루었습니다. 이는 기능적으로 비어 있는지 확인하는 것과 동일합니다. 또한, NullPointerException을 방지하기 위해 잠재적인 null 맵 참조를 처리하는 중요한 측면을 다루었으며, 맵 객체에서 메서드를 호출하기 전에 null 검사의 중요성을 강조했습니다.



