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입력 : 프로그램을 종료합니다