728x90
★ HashMap
- 키값을 사용하여 해당 요소를 접근하는 배열
- 양식
- HashMap<Intefer, String> map = new HashMap<Integer, String>();
★ HashMap vs ArrayList
- ArrayList
- 요소 접근 > 첨자(index) 사용
- list[0], list[1], list[2]
- 순서가 있는 데이터 집합(방번호 == 요소의 순서)
- ex) 1강의실, 2강의실, 3강의실
- 방번호 > 루프 적용
- 방번호 > 의미 모호...
- 첨자(index)는 유일하다.
- 요소 > 첨자(index) + 값(value)
- 값(value)는 중복이 가능하다. > 방번호가 유일해서..
- HashMap
- 요소 접근 > 키(key) 사용
- list["햇님"], list["달님"], list["별님"]
- 순서가 없는 데이터 집합 > 방번호가 없음 > 순서를 알 수 없음
- ex) 햇님반, 달님반, 별님반
- 방이름 > 의미 명확
- 방이름 > 루프 불가능
- 요소 > 키(key) + 값(value)
- 키(key)는 유일하다.
- 값(Value)은 중복이 가능하다. > 키가 유일해서..
- 소스코드
private static void m1() {
//요구사항] 학생 1명의 국,영,수 점수 저장
//1. 각각의 변수
//2. 배열
//3. ArrayList
//4. Class
//5. HashMap
//배열 vs ArrayList
//- 길이 고정 vs 가변
//Class vs HashMap
//- 데이터의 개수(학생 수)
//- 개수가 적으면 > HashMap or Class
//- 개수가 많으면 > Class
//1-1. 간편함. 비권장
int kor = 100;
int eng = 90;
int math = 80;
//1-2. 배열, 집합, 과목 모호..
int [] score = new int[3];
score[0] = 100;
score[1] = 90;
score[2] = 80;
//3. 배열, 집합, 과목 모호..
ArrayList<Integer> score2 = new ArrayList<Integer>();
score2.add(100); //score2.get(0)
score2.add(90); //score2.get(1)
score2.add(80); //score2.get(2)
//4. 클래스, 집합, 과목 명확!
Score score3 = new Score();
score3.kor = 100;
score3.eng = 90;
score3.math = 80;
//5. HashMap, 집합, 과목 명확!!
HashMap <String, Integer> score4 = new HashMap<String, Integer>();
score4.put("국어", 100);
score4.put("영어", 90);
score4.put("수학", 80);
System.out.println(score4.get("국어"));
System.out.println(score4.get("영어"));
System.out.println(score4.get("수학"));
HashMap <String, Integer> score5 = new HashMap<String, Integer>();
score5.put("국어", 99);
score5.put("영어", 88);
score5.put("수학", 77);
//요구사항] 학생 1명(***)의 국,영,수 저장 > HashMap
//요구사항] 학생 100명의 국,영,수 저장 > Class
//요구사항] 캠핑 > 경험 > 텐트 장비~300만원 > 1박
}
- HashMap 사용법
private static void m2() {
//HashMap 사용법
HashMap<String, String> map = new HashMap<String,String>();
//1. 요소 추가하기
map.put("red", "빨강");
map.put("yellow", "노랑");
map.put("blue", "파랑");
//2. 요소 개수
System.out.println(map.size());
//3. 요소 읽기
System.out.println(map.get("red"));
System.out.println(map.get("yellow"));
System.out.println(map.get("blue"));
//4. 요소 수정
//- 키(key)는 유일하다.
map.put("yellow","샛노랑"); //추가(X), 수정(O)
System.out.println(map.get("yellow")); //샛노랑
//5. 요소 검색
//- contains
System.out.println(map.containsKey("yellow"));
System.out.println(map.containsValue("노랑"));
//6. 요소 삭제
map.remove("yellow");
System.out.println(map.size());
System.out.println();
System.out.println(map.get("yellow")); //없는 방번호를 호출 -> null 값을 반환
//7. 초기화
map.clear();
System.out.println(map.size());
map.put("red", "빨강");
map.put("yellow", "노랑");
map.put("blue", "파랑");
//{red=빨강, blue=파랑, yellow=노랑}
System.out.println(map); //toString() 오버라이딩 > 덤프
ArrayList<String> list = new ArrayList<String>();
list.add("빨강");
list.add("노랑");
list.add("파랑");
//[빨강, 노랑, 파랑]
System.out.println(list);
map.clear();
System.out.println(map.isEmpty());
}
728x90
'자바' 카테고리의 다른 글
JAVA STEP 38. 컬렉션(HashSet) (0) | 2023.02.24 |
---|---|
JAVA STEP 37. HashMap 직접 구현하기 (0) | 2023.02.24 |
JAVA STEP 35. Queue&Stack 직접 구현하기 (0) | 2023.02.23 |
JAVA STEP 34. 컬렉션(Queue&Stack) (0) | 2023.02.23 |
JAVA STEP 33. ArrayList 직접 구현하기 (0) | 2023.02.23 |