Java/문법
Java 이름과 점수의 쌍(pair)으로 저장 하는 HashMap
ssury94
2024. 12. 17. 15:16
학생 이름, 점수를 저장하려 한다.
//이순신, 95
//홍길동, 80
//김나나, 70
이름과 점수의 쌍(pair)으로 저장 하는 HashMap
홍길동 몇점이야 라고 물으신다면? 80점이라고 바로 대답해드림 < direct access
이 pair를 key-홍길동과 value-80라고 합니다.
ArrayList와 HashMap의 차이
ArrayList:
- 구조: 동적 배열을 기반으로 하며, 요소를 순차적으로 저장합니다.
- 중복 허용: 동일한 값을 여러 번 저장할 수 있습니다.
- 순서 유지: 요소가 삽입된 순서를 유지합니다.
HashMap:
- 구조: 키-값 쌍으로 데이터를 저장합니다.
하나의 키에 하나의 값만 저장 - 중복 허용: 동일한 키를 사용할 수 없으며, 키는 유일해야 합니다.
- 순서 미보장: 삽입 순서를 기억하지 않으며, 데이터의 순서는 보장되지 않습니다.
HashMap의 CRUD
import java.util.HashMap;
import java.util.Map;
public class HashMapMain {
public static void main(String[] args) {
// 학생 이름, 점수를 저장하려 한다.
//이순신, 95
//홍길동, 80
//김나나, 70
//이름과 점수의 쌍(pair)으로 저장
//홍길동 몆점이야? 80점 < direct access
//이 pair를 key와 value라고 합니다.
HashMap<String, Integer> scoreMap=new HashMap<>();
//문자랑 숫자
HashMap <문자, 숫자 - 페어> scoreMap = new HashMap<>();
데이터 추가 CRUD의 C put()
scoreMap.put("이순신",95);
scoreMap.put("홍길동",80);
scoreMap.put("김나나",70);
데이터 가져오기 CRUD의 R get()
//데이터 가져오기 CRUD의 R get(key)
//key로 한번에 데이터 엑세스가 가능
//김나나 점수는?
scoreMap.get("김나나");
//HashMap은 그래서 키값이 유니크해야한다.
System.out.println(scoreMap.get("김나나"));
key로 한번에 데이터 엑세스가 가능 >> 그래서 key값은 유니크 해야한다!
데이터 수정하기 CRUD의 U put()
//데이터 수정하기 CRUD의 U put()
//생성도 put(), 수정도 put()
scoreMap.put("김나나",88);
System.out.println(scoreMap.get("김나나"));
데이터 삭제하기 CRUD의 D remove()
scoreMap.remove("홍길동");
전체 해쉬맵에 저장되어있는 데이터를 모두 가져와서 출력하자.
for(Map.Entry<String, Integer> scorePair : scoreMap.entrySet() ){
System.out.println(scorePair.getKey() +" : "+scorePair.getValue());
}
//scroeMap에서 하나씩 꺼내서 scorePair에 저장
scoreMap.entrySet(): scoreMap의 모든 엔트리(키-값 쌍)를 가져옵니다.
for-each 루프: 각 Map.Entry 객체를 순회하며,
getKey(): 현재 엔트리의 키를 반환합니다.
getValue(): 현재 엔트리의 값을 반환합니다.
데이터 모두 삭제 clear()
// 데이터 모두 삭제
scoreMap.clear();
비어있는지 확인 isEmpty()
System.out.println(scoreMap.isEmpty());
true, false로 나타난다.
import java.util.HashMap;
import java.util.Map;
public class HashMapMain {
public static void main(String[] args) {
// 학생 이름, 점수를 저장하려 한다.
//이순신, 95
//홍길동, 80
//김나나, 70
//이름과 점수의 쌍(pair)으로 저장
//홍길동 몆점이야? 80점 < direct access
//이 pair를 key와 value라고 합니다.
//ArrayList와의 차이 : Hashmap은 순서가 없다!
//사람친화적이다!
HashMap<String, Integer> scoreMap=new HashMap<>();
//문자랑 숫자
//변수 이름 하나로 여러 데이터를 저장할수 있다.
//데이터 추가 CRUD의 C put() 집어넣어라
scoreMap.put("이순신",95);
scoreMap.put("홍길동",80);
scoreMap.put("김나나",70);
//데이터 가져오기 CRUD의 R get(key)
//key로 한번에 데이터 엑세스가 가능
//김나나 점수는?
scoreMap.get("김나나");
//HashMap은 그래서 키값이 유니크해야한다.
System.out.println(scoreMap.get("김나나"));
//데이터 수정하기 CRUD의 U put()
//생성도 put(), 수정도 put()
scoreMap.put("김나나",88);
System.out.println(scoreMap.get("김나나"));
//데이터 삭제하기 CRUD의 D remove()
scoreMap.remove("홍길동");
//전체 해쉬맵에 저장되어있는 데이터를 모두 가져와서 출력하자.
for(Map.Entry<String, Integer> scorePair : scoreMap.entrySet() ){
System.out.println(scorePair.getKey() +" : "+scorePair.getValue());
}
//scroeMap에서 하나씩 꺼내서 screPair에 저장
// 데이터 모두 삭제
scoreMap.clear();
// 비어있는지 확인.
System.out.println(scoreMap.isEmpty());
}
}