JAVA/Java 기초
컬렉션프레임워크 - HashMap
H_eh
2022. 6. 4. 01:20
- Map 인터페이스를 구현한 클래스 중 가장 많이 사용
- 새로운 key-value 자료가 입력되거나, key를 알고 있는 상태에서 value 를 검색
- 자료 추가 속도, 검색속도가 빠르다
- put(), get()
public class CollEx20hashMap {
public static void main(String[] args) {
HashMap<String, String> h =
new HashMap<String, String>();
h.put("물", "water");
h.put("커피", "coffee");
h.put("티", "tea");
System.out.println( h.get("커피") ); //키를 기준으로 값을 뽑아냄
Set<String> keys = h.keySet(); //물, 커피, 티
Iterator<String> it = keys.iterator();
while(it.hasNext()) {
String a = it.next(); //키
String b = h.get(a); //a로부터 value 가져오기
System.out.println(a+" "+b);
}
}
}
- containsKey() : HashMap에 매개변수로 받은 키 값이 있으면.
- 간단한 login 기능 구현
public class CollEx21hashMapLogin {
public static void main(String[] args) {
HashMap h = new HashMap();
h.put("suin", "123");
h.put("chongA", "234");
h.put("seoyoung", "345");
Scanner sc = new Scanner(System.in);
//id, pw 검색
while(true) {
System.out.println("id, pw 입력:");
String id = sc.next();
String pw = sc.next();
/*
* 1. 둘다 맞을 경우
* 2. id가 해시맵에 없을 경우
* 3. id는 있는데 비번이 틀릴 경우
*/
if( !h.containsKey(id)) { //id가 해시맵에 없을 경우
System.out.println("없는 ID 입니다.");
continue; // id 다시 입력하게.
}
else {
if( !h.get(id).equals(pw) ) { //id의 pw과 입력한 pw가 같으면
System.out.println("비밀번호가 틀렸습니다.");
}
else {
System.out.println("로그인 되었습니다.");
break;
}
}
}
}
}
- HashMap 을 이용하여 단어 검색 구현하기
- HashMap 을 만든다.
- HashMap 에 데이터를 추가한다.
- 모든 키 값들을 (집합형태로) 받아온다
- 키를 기준으로 순회하며 목록을 출력한다
- 반복문을 이용해서 검색기능을 구현한다
- 검색어 입력받기
- 검색어(키)에 해당하는 값을 받아와 저장한다
- 값이 없으면 "없는 단어"를 출력하고, 있으면 값을 출력한다.
- '종료'를 입력하면 프로그램이 종료된다.
- HashMap 을 만든다.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
public class EtcHashMapSearch {
public static void main(String[] args) {
HashMap<String, String> h =
new HashMap<String, String>();
h.put("커피", "coffee");
h.put("홍차", "(black)tea");
h.put("맥주", "beer");
//목록 출력
System.out.println("검색가능한 단어 목록:");
Set<String> keys = h.keySet();
Iterator<String> it = keys.iterator();
while(it.hasNext()) {
String k = it.next();
System.out.print(k+" ");
}
System.out.println();
//단어검색
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("'종료'를 입력하면 멈춥니다.");
System.out.println("찾을 단어 입력:");
String sch = sc.next();
String result = h.get(sch);
if(result == null) {
if(sch.equals("종료")) {
break;
}
System.out.println("없는 단어 입니다.");
}
else {
System.out.println(sch+" = "+result);
}
}
}
}
728x90
728x90