Collection/HashMap
HashMap 예제(3)
by pms93
2022. 7. 26.
package hashMaps;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
public class Quiz3 {
public static void main(String[] args) {
// HashMap을 사용하여 회원정보 만들기. HashMap을 두개 만들어서 구성하기.
// 1. 회원등록 : id, password, name 3개의 정보를 등록함. id는 key로 password, name은 value로 사용
// 2. 회원검색 : id를 key로 사용중이기에 id를 이용하여 회원정보를 검색하여 출력함
// 3. 회원삭제 : id를 key로 사용중이기에 id를 이용하여 회원정보를 삭제함.
// 4. 회원 모두보기 : 모든 정보를 출력
// 5. 비밀번호 수정 : id를 key로 사용중이기에 id를 이용하여 비밀번호를 수정함.
// 6. 프로그램 종료
Scanner sc = new Scanner(System.in);
HashMap<String, String> informName = new HashMap<>();
HashMap<String, String> informPw = new HashMap<>();
String id, name, pw, sel;
while (true) {
Iterator<String> itInformName = informName.keySet().iterator();
System.out.print("1. 회원등록\n2. 회원검색\n3. 회원삭제\n4. 회원 모두보기\n5. 비밀번호 수정\n6. 프로그램 종료\n: ");
sel = sc.next();
sc.nextLine();
switch (sel) {
case "1":
System.out.print("등록하실 아이디를 입력하세요 : ");
id = sc.next();
sc.nextLine();
if (informName.containsKey(id)) {
System.out.println("이미 등록된 아이디입니다.");
break;
}
System.out.print("이름을 입력하세요 : ");
informName.put(id, sc.next());
sc.nextLine();
System.out.print("비밀번호를 입력하세요 : ");
informPw.put(id, sc.next());
sc.nextLine();
break;
case "2":
if (informName.size() == 0) {
System.out.println("등록된 정보가 없습니다.");
break;
}
System.out.print("검색하실 ID를 입력하세요 : ");
id = sc.next();
sc.nextLine();
if (!informName.containsKey(id)) {
System.out.println("존재하지 않는 ID입니다.");
break;
}
System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", id, informName.get(id), informPw.get(id));
break;
case "3":
if (informName.size() == 0) {
System.out.println("등록된 정보가 없습니다.");
break;
}
System.out.println("<< 등록된 정보 >>");
itInformName = informName.keySet().iterator();
while (itInformName.hasNext()) {
String tmp = itInformName.next();
System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", tmp, informName.get(tmp), informPw.get(tmp));
}
System.out.print("삭제하실 ID를 입력하세요 : ");
id = sc.next();
sc.nextLine();
if (!informName.containsKey(id)) {
System.out.println("해당 정보는 존재하지 않습니다.");
break;
}
informName.remove(id);
informPw.remove(id);
System.out.println("삭제가 완료되었습니다.");
break;
case "4":
System.out.println("<< 등록된 정보 >>");
itInformName = informName.keySet().iterator();
while (itInformName.hasNext()) {
String tmp = itInformName.next();
System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", tmp, informName.get(tmp), informPw.get(tmp));
}
break;
case "5":
System.out.println("<< 등록된 정보 >>");
itInformName = informName.keySet().iterator();
while (itInformName.hasNext()) {
String tmp = itInformName.next();
System.out.printf("ID : %s\t이름 : %s\t비밀번호 : %s\n", tmp, informName.get(tmp), informPw.get(tmp));
}
System.out.print("비밀번호를 수정하실 id를 입력하세요 : ");
id = sc.next();
sc.nextLine();
if (!informName.containsKey(id)) {
System.out.println("해당 정보는 존재하지 않습니다.");
break;
}
System.out.print("수정하실 pw를 입력하세요 : ");
informPw.replace(id, sc.next());
sc.nextLine();
System.out.println("변경이 완료되었습니다.");
break;
case "6":
System.out.println("프로그램을 종료합니다.");
System.exit(0);
default:
System.out.println("메뉴 확인 후 다시 입력하세요...");
}
}
}
}