day20_HashMapEx11

육희영·2021년 11월 1일
0
package com.java1.day20;

import java.util.*;

/* HashMap?
 * Map의 특징인 키(key)와 값(value)을 묶어서 하나의 데이터(entry)로 저장한다.
 * 키(key)는 중복금지, 값(value)는 중복허용.
 * 많은 양의 데이터를 검색 하는데 뛰어난 성능을 보인다.
 */
public class HashMapEx11 {
	public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put("myId", "1234");
		map.put("asdf", "1111");
//		map.put("asdf", "1234");	//asdf에 원래 1111 값이 있었지만 1234로 덮어 쓰여진다.	
		
		Scanner s = new Scanner(System.in);
		
		while(true) {
			System.out.println("id와 password를 입력해주세요.");
			System.out.print("id :");
			String id = s.nextLine().trim();
			
			System.out.print("password :");
			String password = s.nextLine().trim();
			System.out.println();
			
			//boolean containsKey(Object key)
			//HashMap에 지정된 키(key)가 포함되어 있는지 알려준다.(포함되어 있으면 true)
			if(!map.containsKey(id)) {	//입력받은 id가 map의 key값들 중에 같은게 있는지..!붙었으니 없다면...
				System.out.println("입력하신 ID는 존재하지 않습니다. 다시 입력해주세요.");

			} else {
				if(!(map.get(id).equals(password))) {
					System.out.println("비밀번호가 일치하지 않습니다. 다시 입력해주세요.");
				} else {
					System.out.println("ID와 비밀번호가 일치합니다.");
					break;
				}
			}
		}	//while 끝
	}
} 

	/* 15번 라인의 주석을 풀고 실행을 해보면
	 * id와 비밀번호를 각각 asdf, 1111 넣었을때 ID와 비밀 번호가 일치 하지 않는다는 메세지가 뜬다.
	 * 왜 그럴까?
	 * 세번째로 저장한 데이터의 키인'asdf'는 이미 존재하기 때문에 새로 추가되는 대신 기존의 값을 덮어썻다.
	 * 그래서 키 'asdf'에 연결된 값은 '1234'가 된다.
	 */

출력결과

0개의 댓글

관련 채용 정보