HashMap
HashMap은 파이썬의 딕셔너리와 비슷한 데이터 스트럭쳐로써,
key, value 쌍으로 저장한다. 사용하기 위해 페이지 상단에 자바 유틸의 해쉬맵을 import 시킨다.
import java.util.HashMap;
그리고 함수 안에 아래 해쉬맵 형식을 적어준다.
HashMap<String, String> phoneMap = new HashMap<>();
CRUD
Create
데이터 저장
위에서 해쉬맵 타입은 String문자로 받기로 했기 때문에 문자로 엄격하게 다뤄줘야 한다.
자바에서는 데이터 타입 맞춰주는 것이 가장 중요한 것 중 하나다.
phoneMap.put("model", "iPhone 12");
phoneMap.put("year", "2021");
phoneMap.put("color", "red");
Read
데이터 가져오기
String value = phoneMap.get("color");
System.out.println(value); // red
Update
데이터 값 변경하기
phoneMap.replace("year", "2022");
System.out.println(phoneMap.get("year")); // 2022
Delete
데이터 삭제하기
phoneMap.remove("year");
전체 데이터 프린트하기
오리지널 루프
데이터를 array로 바꿔서 처리해 주는 것이 포인트다.
* Object 라는 것은 자바의 최상위 클래스이다.
Object[] values = phoneMap.values().toArray();
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
for each 방법
Object[] values = phoneMap.values().toArray();
for(Object data : values) {
System.out.println(data);
}
데이터 모두 삭제
phoneMap.clear();
데이터 유무 확인
if (phoneMap.isEmpty()) {
System.out.println("데이터 없음");
} else {
System.out.println("데이터 있음");
}
import java.util.HashMap;
public class HashMapMain {
public static void main(String[] args) {
// Map은 파이썬의 딕셔너리와 비슷한 데이터 스트럭처로써,
// key, value의 쌍으로 저장한다.
HashMap<String, String> phoneMap = new HashMap<>();
// 데이터 저장
phoneMap.put("model", "iPhone 12");
phoneMap.put("year", "2021"); // 문자로 받기로 했기 때문에 문자로 엄격하게 다뤄줘야 함. 자바는 데이터 타입 맞춰주는 것이 가장 중요하다.
phoneMap.put("color", "red");
// 데이터 가져오기
String value = phoneMap.get("color");
System.out.println(value); // red
// 데이터 값 변경하기
phoneMap.replace("year", "2022");
System.out.println(phoneMap.get("year")); // 2022
// 데이터 삭제하기
phoneMap.remove("year");
// 전체 데이터 프린트
//// 이상한 방식! 안된다!
for (int i = 0; i < phoneMap.size(); i++) {
System.out.println(phoneMap.get(i));
}
//// 오리지날 루프
Object[] values = phoneMap.values().toArray(); // array로 바꿔서 처리해 준다.
for (int i = 0; i < values.length; i++) {
System.out.println(values[i]);
}
/////// 자바의 최상위 클래스에는 Object가 있다.
//// for each 방법
for(Object data : values) {
System.out.println(data);
}
// 데이터 모두 삭제
phoneMap.clear();
// 데이터 유무 확인
if (phoneMap.isEmpty()) {
System.out.println("데이터 없음");
} else {
System.out.println("데이터 있음");
}
}
}