에러 탈출 일지
[Java] HashMap 사용 본문
< Map의 특징 >
1. 키(key)와 값(value)의 쌍이 하나의 데이터를 이루는 구조
2. 순서 x
3. 키(key): 중복 x
4. 값(value): 중복 o
Hashtable: HashMap의 이전 버전, 쓰레드의 동기화 부분이 있어서 성능 저하.
HashMap: 쓰레드의 동기화 부분을 제거하여 성능 개선.
HashMap의 생성 및 데이터 추가
// 키:한글(String), 값:영어(String)
// 1. HashMap 생성
HashMap<String, String> map = new HashMap<String, String>();
// 2. 데이터 추가
map.put("사과", "apple");
map.put("호랑이", "tiger");
map.put("학생", "student");
map.put("학교", "school");
map.put("코끼리", "elephant");
map.put("수박", "watermeron");
map.put("비행기", "airplane");
데이터 추가 - 새로운 키 삽입
1. 새로운 키 삽입 → 허용
2. 중복된 값 삽입 → 허용
// 1번 - 새로운 키 삽입
map.put("물", "water");
System.out.println(map);
// 2번 - 중복된 값 삽입
map.put("대학생", "student");
System.out.println(map);
데이터 수정 - 새로운 값으로 덮어쓰기
watermeron → watermelon 으로 수정하기
// 1번 방법
map.put("수박", "watermelon");
System.out.println(map);
// 2번 방법
if(map.put("수박","watermelon") == null) {
System.out.println("새로운 단어를 입력하였습니다.");
} else {
System.out.println("단어를 수정하였습니다.");
}
System.out.println(map);
데이터 삭제 - 존재하는 데이터 삭제
1. 키만 입력해서 데이터 삭제 → 가능
2. 키는 같지만, 값이 다른 경우 → 불가
3. 키와 값이 모두 같은 경우 → 가능
// 1번 방법
map.remove("코끼리");
System.out.println(map);
// 2번 방법
map.rempve("코끼리","elephantttt");
// 3번 방법
map.rempve("코끼리","elephant");
// 4번 방법
if(map.remove("사자") == null) {
System.out.println("입력한 단어는 존재하지 않습니다.");
} else {
System.out.println("단어를 삭제하였습니다.");
}
데이터 출력 방법 1. Iterator, keySet() 사용
Set<String> keys = map.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()) {
String name = it.next();
String ename = map.get(name);
System.out.println(name + " : " + ename);
}
데이터 출력 방법 2. Iterator, entrySet() 사용
Set<Entry<String, String>> entrySet = map.entrySet();
Iterator<Entry<String, String>> it = entrySet.iterator();
while(it.hasNext()) {
Entry<String, String> entry = it.next();
String name = entry.getKey();
String ename = entry.getValue();
System.out.println(name + " : " + ename);
}
데이터 출력 방법 3. 확장 for문, entrySet() 사용
Set<Entry<String, String>> entrys = map.entrySet(); // Map.Entry<String, String> 에서 Map생략
for(Entry<String, String> e : entrys) {
String name = e.getKey();
String ename = e.getValue();
System.out.println(name + ":" + ename);
}
'개발 > Java' 카테고리의 다른 글
[Java] 예외처리 (0) | 2022.08.23 |
---|---|
[Java] HashMap 사용하여 로그인하는 화면 구현하기 (0) | 2022.08.23 |
[Java] TreeSet 사용시 Comparable 인터페이스를 구현하기 (0) | 2022.08.22 |
[Java] TreeSet (0) | 2022.08.21 |
[Java] HashSet (0) | 2022.08.19 |