Map
- 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합
- 키와 값은 모두 객체
- 키는 중복될 수 없지만 값은 중복 저장 가능
- 기존에 저장된 데이터와 중복된 키 값을 저장하면, 새로운 값이 기존의 값을 덮어써 마지막에 저장된 값이 남음
- 구현 클래스 : HashMap, Hashtable, LinkedHahsMap, Prpperties, TreeMap
- 일반적으로 키 타입은 String 사용
HashMap의 생성
: key 타입과 value 타입을 매개변수로 주고 기본 생성자 호출
Map<K, V> map = new HashMap<K, V>();
HashMap 예제 - 1
package map;
import java.util.HashMap;
import java.util.Map;
public class HashMapEx {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
// 객체 저장
map.put("홍길동", 85);
map.put("이몽룡", 90);
map.put("홍길동", 80);
map.put("성춘향", 95);
System.out.println("총 Entry 수 : " + map.size());
System.out.println(map);
// key로 검색 -> value 반환
System.out.println("\n홍길동 검색 : " + map.get("홍길동"));
System.out.println();
// 키 값 출력
System.out.println(map.keySet());
System.out.println();
// key와 value 출력
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
// 객체 삭제 remove(key)
map.remove("홍길동");
System.out.println("\n총 Entry 수 : " + map.size());
// 전체 객체 삭제
map.clear();
System.out.println("\n총 Entry 수 : " + map.size());
}
}
HashMap 예제 - 2
package map;
import java.util.HashMap;
import java.util.Set;
public class HashMapEx03 {
public static void main(String[] args) {
HashMap<String, String[]> phone = new HashMap<String, String[]>();
phone.put("친구1", new String[] {"010-1111-1111", "02-1111-1111", "fr1@multi.com"});
phone.put("친구2", new String[] {"010-2222-2222", "02-2222-2222", "fr2@multi.com"});
phone.put("동창", new String[] {"010-3333-3333", "02-3333-3333", "fr3@multi.com"});
phone.put("부장님", new String[] {"010-4444-4444", "02-4444-4444", "boss@multi.com"});
phone.put("회사동기", new String[] {"010-5555-5555", "02-5555-5555", "col@multi.com"});
System.out.println("총 그룹 수 : " + phone.size());
// 내 연락처 모든 정보 조회
for (String k : phone.keySet()) {
System.out.println(k + " : ");
String[] phoneList = phone.get(k);
for (String one : phoneList) {
System.out.print(one + " | ");
}
System.out.println();
}
System.out.print("회사 동기 검색 : ");
if(phone.containsKey("회사동기")) {
for (String one : phone.get("회사동기")) {
System.out.print(one + " | ");
}
}
System.out.print("사장님 검색 : ");
if(phone.containsKey("사장님")) {
for (String one : phone.get("사장님")) {
System.out.print(one + " | ");
}
}
else System.out.println("연락처 없음");
}
}
HashMap 예제 - 3
package map;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class HashMapEx02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Map<String, String> dict = new HashMap<String, String>();
dict.put("apple", "사과");
dict.put("summer", "여름");
dict.put("candy", "사탕");
dict.put("school", "학교");
dict.put("water", "물");
dict.put("exit", "종료합니다...");
while (true) {
System.out.print("찾고 싶은 단어는?");
String str = sc.nextLine();
if(dict.equals("exit")) break;
else {
if (dict.containsKey(str)) System.out.println(dict.get(str));
else System.out.println(str + "은(는) 없는 단어입니다");
}
}
System.out.println("종료합니다...");
sc.close();
}
}
'Backend > Java' 카테고리의 다른 글
이진 탐색 트리 활용 상품 관리 프로그램 (0) | 2021.12.02 |
---|---|
Collections 클래스 (0) | 2021.11.30 |
Iterator (0) | 2021.11.30 |
Set (0) | 2021.11.30 |
this (0) | 2021.11.30 |