본문 바로가기

Java

[Java] 34

실습(HashMap 예제)

- 카페 메뉴판 시스템 프로그램 만들기

0. 실행할 항목 입력받기

while(true) {
	System.out.println("1. 메뉴 추가하기");
	System.out.println("2. 메뉴 수정하기");
	System.out.println("3. 메뉴 삭제하기");
	System.out.println("4. 전체 메뉴보기");
	System.out.println("5. 나가기");
	System.out.print("입력 >> ");
	int choice = Integer.parseInt(sc.nextLine());
}

 

1. key값이 존재하는지 확인하는 메소드 생성

public static boolean containsKey(HashMap<String, Integer> map, String key) {  
	for (String k : map.keySet()) {
		if(k.equals(key)) {  // key값이 중복일 때
			return true;
		}
	}
	return false;
}

 

2. 메뉴 추가하기

if(choice == 1) {

	System.out.print("메뉴 입력 >> ");
	String menu = sc.nextLine();
				
	// 이미 menus에 추가하고자 하는 key값이 존재한다면 추가 실패 출력하기				
	if(HashMapTask.containsKey(menus, menu)) {
		System.out.println("추가 실패 : 중복된 메뉴 존재");

	} else {
		System.out.print("가격 입력 >> ");
		int price = Integer.parseInt(sc.nextLine());

		menus.put(menu, price);
		System.out.println("추가 성공");
	}
				
}

 

결과

메뉴 추가 실패

 

3. 메뉴 가격 수정하기

if(choice == 2) {

	System.out.print("수정할 메뉴 >> ");
	String menu = sc.nextLine();
		
	// 수정하고자 하는 key값이 존재하는지 검사				
	if(HashMapTask.containsKey(menus, menu)) {
		System.out.print("수정할 가격 >> ");
		int price = Integer.parseInt(sc.nextLine());
		
		menus.put(menu, price);
		System.out.println("수정 완료");
				
	} else {
		// key값이 존재하지 않는다면 수정 실패 출력하기
		System.out.println("수정 실패 : 해당 메뉴가 존재하지 않음");
	}
				
}

 

결과

메뉴 수정 실패

 

4. 메뉴 삭제하기

if(choice == 3) {
	
	System.out.print("삭제할 메뉴 >> ");
	String menu = sc.nextLine();
					
	if(HashMapTask.containsKey(menus, menu)) {
		menus.remove(menu);
		System.out.println("삭제 성공");
				
	} else {
		// key값이 존재하지 않는다면 삭제 실패 출력하기
		System.out.println("삭제 실패");
	}

}

 

결과

메뉴 삭제 실패

 

5. 전체 메뉴보기

if(choice == 4) {
	
	System.out.println("-----menu-----");
	for (String key : menus.keySet()) {
		System.out.println(key + " : " + menus.get(key));
	}
				
}

 

결과

 

6. 나가기

if(choice == 5) {
	break;
}

 

결과

 

 

​​

※ 전체 코드

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

public class HashMapTask {

	// key값이 존재하는지 확인하는 메소드
	public static boolean containsKey(HashMap<String, Integer> map, String key) {  
		for (String k : map.keySet()) {
			if(k.equals(key)) {  // key값이 중복일 때
				return true;
			}
		}
		return false;
	}
	
	
	public static void main(String[] args) {
		// 카페 메뉴판 시스템 프로그램
		
		Scanner sc = new Scanner(System.in);
		
		// 음식 이름과 가격을 저장할 HashMap
		HashMap<String, Integer> menus = new HashMap<String, Integer>();
		
		while(true) {
			System.out.println("1. 메뉴 추가하기");
			System.out.println("2. 메뉴 수정하기");
			System.out.println("3. 메뉴 삭제하기");
			System.out.println("4. 전체 메뉴보기");
			System.out.println("5. 나가기");
			System.out.print("입력 >> ");
			int choice = Integer.parseInt(sc.nextLine());
			
			if(choice == 5) {
				break;
			} else if(choice == 1) {
				// 메뉴 추가하기
				System.out.print("메뉴 입력 >> ");
				String menu = sc.nextLine();
				
				// 이미 menus에 내가 추가하고자 하는 key값이 존재한다면 추가 실패 출력하기				
				if(HashMapTask.containsKey(menus, menu)) {
					System.out.println("추가 실패 : 중복된 메뉴 존재");
				} else {
					System.out.print("가격 입력 >> ");
					int price = Integer.parseInt(sc.nextLine());
					menus.put(menu, price);
					System.out.println("추가 성공");
				}
				
				
			} else if(choice == 2) {
				// 메뉴 가격 수정하기
				System.out.print("수정할 메뉴 >> ");
				String menu = sc.nextLine();
				
				// 수정하고자 하는 key값이 존재하는지 검사				
				if(HashMapTask.containsKey(menus, menu)) {
					System.out.print("수정할 가격 >> ");
					int price = Integer.parseInt(sc.nextLine());
					
					menus.put(menu, price);
					System.out.println("수정 완료");
					
				} else {
					// key값이 존재하지 않는다면 수정 실패 출력하기
					System.out.println("수정 실패 : 해당 메뉴가 존재하지 않음");
				}
				
				
			} else if(choice == 3) {
				// 메뉴 삭제하기
				System.out.print("삭제할 메뉴 >> ");
				String menu = sc.nextLine();
					
				if(HashMapTask.containsKey(menus, menu)) {
					menus.remove(menu);
					System.out.println("삭제 성공");
					
				} else {
					// key값이 존재하지 않는다면 삭제 실패 출력하기
					System.out.println("삭제 실패");
				}

				
			} else if(choice == 4) {
				// 전체 메뉴보기
				System.out.println("-----menu-----");
				for (String key : menus.keySet()) {
					System.out.println(key + " : " + menus.get(key));
				}
				
				
			} else {
				System.out.println("잘못 입력했습니다");
			}
		}
		
	}

}

 

'Java' 카테고리의 다른 글

[Java] 36  (0) 2022.02.08
[Java] 35  (0) 2022.02.06
[Java] 33  (0) 2022.02.03
[Java] 32  (0) 2022.02.02
[Java] 31  (0) 2022.02.01