24/11/27(수) Map
리스트로만 데이터를 관리하기에는 한계가 있다. 그래서 사용하는 것이 해쉬맵이다
리스트에는 value값만 있다면 HashMap은 value(값)에 key라는 요소를 추가하여 저장된다. ("key, value" 쌍)
HashMap은 key로 저장해 둔 value를 찾기 때문에 index(위치)라는 것이 없고 value 사이에 순서도 없음.
헷갈리니까 "키벨류"로 기억하자~!
🤖코드의 구조
HashMap<Integer, String> students = new HashMap<>();
//new HashMap<데이터타입> + ctrl+alt(option)+v -> 자동완성
map에 데이터를 추가하는것 - 만드는것
students.put(`1003, "송삼동"); students.put(1002, "고혜미"); students.put(1004, "김필숙"); //1003은 key 송삼동은 value
map에 데이터를 읽어오는것
assertThat(students.get(1002)).isEqualTo("고혜미"); assertThat(students.get(1004)).isEqualTo("김필숙"); assertThat(students.get(1003)).isEqualTo("송삼동");
//students.keySet().for + 엔터
for (Integer key : students.keySet()) {
System.out.println("key = " + key);
}
//students.values().for + 엔터
for (String value : students.values()) {
System.out.println("value = " + value);
}
//students.entrySet().for + 엔터
//.getKey, .getValue도 작성해야한다.
for (Map.Entry<Integer, String> entry : students.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println("Key: " + key + ", Value: " + value);
}
map에 데이터를 읽어오는것
students.remove(1003); assertThat(students.size()).isEqualTo(2); assertThat(students.get(1003)).isNull();
update는 없음! 그냥 덮어쓰는 용도여서 put을 사용해서 덮어쓰는 것만 허용됨
😐 느낀점
리스트의 확장버전이라고 생각하고 작성하면된다.