Collection/HashMap
HashMap 예제(2)
by pms93
2022. 7. 26.
package hashMaps;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
public class Quiz2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<String, Integer> menuList = new HashMap<>();
String menu, sel, fixSel;
int price, cnt = 1;
while (true) {
System.out.print("1. 메뉴 등록\n2. 메뉴별 가격 보기\n3. 종료\n: ");
sel = sc.next();
sc.nextLine();
switch (sel) {
case "1":
System.out.print("음식이름 입력 : ");
menu = sc.nextLine();
if (menuList.containsKey(menu.replace(" ", ""))) {
System.out.println("이미 등록된 메뉴입니다.");
break;
}
while (true) {
try {
System.out.print("가격 입력 : ");
price = sc.nextInt();
} catch (Exception e) {
System.out.println("숫자만 입력하세요...");
sc.nextLine();
continue;
}
break;
}
menuList.put(menu.replace(" ", ""), price);
break;
case "2":
if (menuList.size() == 0) {
System.out.println("등록된 메뉴가 없습니다.");
break;
}
Iterator<String> itMenu = menuList.keySet().iterator();
System.out.println("<< 등록된 메뉴 >>");
while (itMenu.hasNext()) {
String tmp = itMenu.next();
System.out.printf("%s. %s : %d원\n", cnt++, tmp, menuList.get(tmp));
}
cnt = 1;
System.out.print("1. 수정 2. 삭제 3. 나가기\n: ");
fixSel = sc.next();
sc.nextLine();
switch (fixSel) {
case "1":
System.out.print("수정하실 메뉴의 이름을 입력하세요 : ");
menu = sc.nextLine();
if (!menuList.containsKey(menu.replace(" ", ""))) {
System.out.println("존재하지 않는 메뉴입니다.");
break;
}
while (true) {
try {
System.out.print("수정하실 가격을 입력하세요 : ");
price = sc.nextInt();
} catch (Exception e) {
System.out.println("숫자만 입력하세요...");
sc.nextLine();
continue;
}
break;
}
// 코드 흐름의 제어에 따라 put 혹은 replace를 선택해서 update할 수 있다.
menuList.replace(menu, price);
System.out.println("수정이 완료되었습니다.");
break;
case "2":
System.out.println("삭제하실 메뉴를 입력하세요");
menu = sc.nextLine();
if (!menuList.containsKey(menu.replace(" ", ""))) {
System.out.println("존재하지 않는 메뉴입니다.");
break;
}
menuList.remove(menu);
System.out.println("삭제가 완료되었습니다");
break;
case "3":
break;
default:
System.out.println("메뉴 확인 후 다시 입력하세요...");
}
break;
case "3":
System.out.println("프로그램을 종료합니다.");
System.exit(0);
default:
System.out.println("메뉴 확인 후 다시 입력하세요...");
}
}
}
}