본문 바로가기
Collection/HashMap

HashMap 예제(1)

by pms93 2022. 7. 25.
package hashMaps;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;

public class Quiz {

	public static void main(String[] args) {
		// HashMap을 이용하여 간단한 메뉴판 만들기
		// 1. 메뉴 등록
		// 2. 메뉴별 가격 보기(모든 메뉴의 이름과 가격 출력)
		// 3. 종료
		HashMap<String, Integer> menuList = new HashMap<>();
		Scanner sc = new Scanner(System.in);
		String menu = "";
		int sel, price, cnt = 1;

		while (true) {
			while (true) {
				try {
					System.out.print("1. 메뉴 등록\n2. 메뉴별 가격보기\n3. 종료\n: ");
					sel = sc.nextInt();
				} catch (Exception e) {
					System.out.println("잘못된 형식의 입력입니다.");
					sc.nextLine();
					continue;
				}
				break;
			}

			switch (sel) {
			case 1:
				System.out.print("등록하실 메뉴의 이름을 입력하세요\n: ");
				menu = sc.next();
				if (menuList.containsKey(menu)) {
					System.out.println("이미 등록된 메뉴입니다.");
					break;
				}

				while (true) {
					try {
						System.out.print("가격을 입력하세요\n: ");
						price = sc.nextInt();
					} catch (Exception e) {
						System.out.println("잘못된 형식의 입력입니다.");
						sc.nextLine();
						continue;
					}
					break;
				}

				menuList.put(menu, price);
				System.out.println("메뉴가 등록되었습니다.");
				break;
				
			case 2:
				if (menuList.isEmpty()) {
					System.out.println("등록되어있는 메뉴가 없습니다.");
					break;
				}
				
				Iterator<String> itMenuKey = menuList.keySet().iterator();
				Iterator<Integer> itMenuValue = menuList.values().iterator();
				while (itMenuKey.hasNext()) {
					System.out.printf("%d. %s\t%d원\n", cnt++, itMenuKey.next(), itMenuValue.next());
				}
				
				itMenuKey = menuList.keySet().iterator();
				itMenuValue = menuList.values().iterator();
				cnt = 1;
				break;

			case 3:
				System.out.println("프로그램을 종료합니다");
				System.exit(0);

			default:
				System.out.println("메뉴 확인 후 다시 입력하세요...");
			}

		}

	}
}

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

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