HashMap

자두·2026년 9월 17일

JAVA

목록 보기
3/8
import java.util.HashMap;
import java.util.Scanner;


public class Ex10_HashMap {

	public static void main(String[] args) {
		HashMap<String,Integer> hm = new HashMap<String,Integer>();
		int size = hm.size();
		System.out.println("size : " + size);
		hm.put("윤아", 30);
		hm.put("카리나", 50);
		
		// 중복되어도 에러는 아닌데 덮어쓰기가 된다
		hm.put("지수", 10);
		hm.put("지수", 10);
		
	
		size = hm.size();
		System.out.println("size : " + size);
		System.out.println("hm : " + hm);
		
		Integer value = hm.get("카리나");
		System.out.println("value : " + value);
		
		//없는 걸 가져오라고 하면 에러가 아닌 null이 출력됨.
		Integer value2 = hm.get("아이유");
		System.out.println("value2 : " + value2);
		
		
		//true나 false
		boolean containsKey = hm.containsKey("윤아");
		System.out.println("containsKey : " + containsKey);
		
		boolean containsVaule = hm.containsValue(30);
		System.out.println("containsVaule : " + containsVaule);
		
		
		System.out.println("=================");
		
		//출력예시
		//키 입력 : 지수 카리나
		//있으면 지수의 나이는 40살입니다
		//맞는 이름이 없습니다
		//2가지 방식.
		
		//1번째 방식 - containskey 사용
		Scanner sc = new Scanner(System.in);
		System.out.print("키를 입력하세요 : ");
		String key = sc.next(); //키를 지정해야 하는거 아님?? 엌케 하노 -> 안해도 되긔
		if(hm.containsKey(key)) {
			System.out.println(key+"의 나이는" + hm.get(key) + "살 입니다.");
		}else {
			System.out.println("찾는 키의 값이 없습니다.");
		}
		
		//두번째 방식 - get 사용
		if(hm.get(key) == null) {
			System.out.println("찾는 키의 값이 없습니다.");
		}else {
			System.out.println(key+"의 나이는" + hm.get(key) + "살 입니다.");
		}
		
	}
}

동적으로 메모리가 확대되기도 하고, 축소되기도 함.
그래서 hashset이나 hashmap으로 만들면 됨.
map이 인터페이스. 인터페이스를 상속받음.
키와 값의 쌍으로 이루어짐. 키는 중복을 허용하지 않고, 값은 중복을 허용함.
순서를 유지하지 않음. = set과 같음.

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class Ex11_HashMap {
	public static void main(String[] args) {

		HashMap<String,String> dic = new HashMap<String,String>();

		dic.put("pencil", "연필");
		dic.put("sky", "하늘");
		dic.put("rainbow", "무지개");
		dic.put("moon", "달");

		Scanner sc = new Scanner(System.in);

		do {
			System.out.print("찾는 단어는? (q입력시 종료) : ");
			String word = sc.next().toLowerCase(); //대문자 -> 소문자로 변경
			//word = word.toLowerCase(); //이렇게 두가지방법

			//프로그램 종료로 빠져나가기
			if(word.equals("q")) {
				break;
			}

			if(dic.containsKey(word) == false) {
				System.out.println("잘못 입력하셨습니다.");
			}else {
				System.out.println("뜻 : " + dic.get(word));
			}
		}
		while(true);
		System.out.println("프로그램을 종료합니다.");

		Set<String> keySet = dic.keySet();
		System.out.println("keySet : " + keySet);
		for(String s : keySet) {
			System.out.println(s + ":" +dic.get(s));
		}


	}
}
//대소문 구문안하고 찾는 string  -->> 이거 어케함ㅅㅂ
//없는 단어 : 잘못입력하셨음
// q입력 : 프로그램을 종료합니다
profile
신입 백엔드 개발자 지망하는 취준생!!!

0개의 댓글