본문 바로가기
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("메뉴 확인 후 다시 입력하세요...");
			}
		}

	}
}

'Collection > HashMap' 카테고리의 다른 글

HashMap 예제(3)  (0) 2022.07.26
HashMap 예제(1)  (0) 2022.07.25
HashMap  (0) 2022.07.25