오봉이와 함께하는 개발 블로그
컬렉션 프레임워크 - Map(HashMap) 본문
728x90
Algorithmday_3 정리 (2021.11.30 화요일)
Map
- Map 인터페이스
- 키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합
- 키와 값은 모두 객체
- 키는 중복될 수 없지만 값은 중복 가능
- 기존에 저장된 데이터와 중복된 키 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남음(값을 덮어쓴다)
- 구현 클래스 : HashMap, HashTable, LinkedHashMap, Properties, TreeMap
- 일반적으로 Key의 타입은 String 많이 사용한다.
- HashMap을 생성 하려면 Key와 Value 모두 매개변수 작성을 해야 한다.
- Map<K, V> map = new HashMap<K, V>();
HashMap 예제
HashMapEx1.java
public class HashMapEx1 {
public static void main(String[] args) {
HashMap<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()); // 총 Entry 수 : 3
System.out.println(map); // {성춘향=95, 홍길동=80, 이몽룡=90}
System.out.println(map.get("홍길동")); // 80 (Key 홍길동의 Value 출력
System.out.println(map.keySet()); // [성춘향, 홍길동, 이몽룡] Key 값만 출력됨
for(String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
// 성춘향 : 95
// 홍길동 : 80
// 이몽룡 : 90
map.remove("홍길동", 85); // 홍길동은 80인데 85를 넣으면 지워지지 않음
System.out.println("총 Entry 수 : " + map.size()); // 총 Entry 수 : 3
map.remove("홍길동");
System.out.println("총 Entry 수 : " + map.size()); // 총 Entry 수 : 2
map.clear();
System.out.println("총 Entry 수 : " + map.size()); // 총 Entry 수 : 0
}
}
HashMapEx2.java
public class HashMapEx2 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
Scanner scan = new Scanner(System.in);
map.put("apple", "사과");
map.put("summer", "여름");
map.put("school", "학교");
map.put("bus", "버스");
map.put("water", "물");
while (true) {
System.out.print("찾고 싶은 단어는? ");
String str = scan.next();
if(str.equals("exit")) {
System.out.println("종료합니다");
System.exit(0);
}
else {
if(map.keySet().contains(str)) {
System.out.println(map.get(str));
}
else {
System.out.println("없는 단어 입니다.");
}
}
}
}
}
HashMapEx3.java
public class HashMapEx3 {
public static void main(String[] args) {
HashMap<String, String[]> pNum = new HashMap<String, String[]>();
pNum.put("친구1",
new String[] {"010-1111-1111", "02-1111-1111", "friend1@google.com"});
pNum.put("친구2",
new String[] {"010-2222-2222", "02-2222-2222", "friend2@google.com"});
pNum.put("친구3",
new String[] {"010-3333-3333", "02-3333-3333", "friend2@google.com"});
pNum.put("동기",
new String[] {"010-4444-4444", "02-4444-4444", "sametime@google.com"});
pNum.put("부장님",
new String[] {"010-5555-5555", "02-5555-5555", "boss@google.com"});
System.out.println("총 그룹 수 : " + pNum.size());
// 모든 정보 조회
for(String key : pNum.keySet()) {
System.out.print(key + " : ");
// String[] pList = pNum.get(key);
// for(String one : pList) {
for(String one : pNum.get(key)) {
System.out.print(one + " | ");
}
System.out.println();
}
System.out.println();
System.out.print("\n동기 검색 : ");
if(pNum.containsKey("동기")) {
for(String one : pNum.get("동기")) {
System.out.print(one + " | ");
}
}
System.out.println();
System.out.print("\n사장님 검색 : ");
if(pNum.containsKey("사장님")) {
for(String one : pNum.get("사장님")) {
System.out.print(one + " | ");
}
} else {
System.out.println("연락처 없음");
}
}
}
728x90
'알고리즘 & 자료구조 & 네트워크' 카테고리의 다른 글
정렬(Sort) (0) | 2021.12.01 |
---|---|
트리(Tree) (0) | 2021.11.30 |
컬렉션 프레임워크 - Set(HashSet) & Iterator (0) | 2021.11.30 |
컬렉션 프레임워크 - Vector (0) | 2021.11.30 |
컬렉션 프레임워크 - LinkedList (0) | 2021.11.30 |
Comments