자바에서 HashMap 사용하기
자바에서 `HashMap`은 파이썬의 딕셔너리와 비슷한 데이터 구조야. key와 value 쌍으로 데이터를 저장할 수 있다. 이름과 전화번호 같은 쌍을 저장할 때 유용하다.
HashMap 개념
`HashMap`은 키(key)와 값(value) 쌍을 저장하는 데 사용된다. 키를 사용해 값을 빠르게 검색할 수 있다. 중복된 키는 허용되지 않고, 각 키는 하나의 값에만 연결된다.
예제 코드
아래는 `HashMap`을 사용하는 간단한 예제 코드
import java.util.HashMap;
public class HashMapMain {
public static void main(String[] args) {
// HashMap 생성
HashMap<String, String> phoneMap = new HashMap<>();
// 데이터 저장
phoneMap.put("model", "iPhone 12");
phoneMap.put("year", "2021");
phoneMap.put("color", "red");
// 데이터 액세스
System.out.println(phoneMap.get("model")); // iPhone 12
// 잘못된 코드 - 인덱스 접근
for (int i = 0; i < phoneMap.size(); i++) {
System.out.println(phoneMap.get(i)); // null 출력됨
}
// 올바른 코드 1 - 배열로 변환하여 값 접근
Object[] values = phoneMap.values().toArray();
for (int i = 0; i < values.length; i++) {
System.out.println((String)values[i]);
}
// 올바른 코드 2 - for-each 문으로 값 접근
for (Object data : phoneMap.values().toArray()) {
System.out.println(data);
}
// 데이터 값 변경
phoneMap.replace("color", "blue");
System.out.println(phoneMap.get("color")); // blue
// 데이터 제거
phoneMap.remove("year");
System.out.println(phoneMap.get("year")); // null
// 전체 데이터 삭제
phoneMap.clear();
// 데이터가 있는지 확인
if (phoneMap.isEmpty()) {
System.out.println("데이터 없음");
} else {
System.out.println("데이터 있음");
}
}
}
설명
코드 설명:
- HashMap 생성: `HashMap<String, String> phoneMap = new HashMap<>();`
- 데이터 저장: `phoneMap.put("model", "iPhone 12");`
- 데이터 액세스: `System.out.println(phoneMap.get("model"));`
- 잘못된 코드 - 인덱스 접근: `for (int i = 0; i < phoneMap.size(); i++) { System.out.println(phoneMap.get(i)); }`
- 올바른 코드 1 - 배열로 변환하여 값 접근: `Object[] values = phoneMap.values().toArray();`
- 올바른 코드 2 - for-each 문으로 값 접근: `for (Object data : phoneMap.values().toArray()) { System.out.println(data); }`
- 데이터 값 변경: `phoneMap.replace("color", "blue");`
- 데이터 제거: `phoneMap.remove("year");`
- 전체 데이터 삭제: `phoneMap.clear();`
- 데이터가 있는지 확인: `if (phoneMap.isEmpty()) { System.out.println("데이터 없음"); }`
'Java' 카테고리의 다른 글
[Java]자바에서 문자열 다루기: 생성부터 변환까지 (0) | 2024.06.03 |
---|---|
[Java]Abstract 함수 사용 방법 및 예시 (0) | 2024.06.03 |
[Java]super 키워드 및 메소드 오버라이딩 (0) | 2024.06.03 |
[Java] 클래스 상속 및 Protected 접근 제어자 (0) | 2024.06.03 |
[JAVA]자바에서 getter / setter 함수 사용 (0) | 2024.06.03 |