본문 바로가기

Backend/Java

Map

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