[내일배움캠프 사전캠프] 달리기반 Day4 퀘스트

맹돌이·2026년 8월 27일

사전캠프

목록 보기
7/11
package Java_preCourse.Day4;

import java.util.Map;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //사용자의 입력을 받기위해서 스캐너를 만든다
        Map<String,Integer> map = Map.of("사이다",1700
        ,"콜라",1900,"식혜",2500,"솔의 눈",3000);
        //맵을 이용해서 문자열과 정수를 담을 수 있는 그릇을 만든다

        //사용자에게 메뉴와 가격을 알린다
        System.out.println("-----자판기 품목-----");
        for(String key : map.keySet()){
            System.out.println("메뉴:"+key+" 가격:"+map.get(key));
        }
        System.out.println("------------------");

        //사용자가 구매하는 단계
        System.out.print("구매할 제품의 이름을 입력하시오:");
        //솔의 눈 - 공백처리 때문에 nextLine()을 사용한다
        String menu = sc.nextLine();

        //map에 존재하지 않는 메뉴일 경우 프로그램을 종료한다.
        if(!map.containsKey(menu)) {
            System.out.println("없는 메뉴입니다");
        }
        else{
            //지불할 비용을 입력받는다
            System.out.print("투입하실 비용을 입력하시오:");
            int total = sc.nextInt();
            //선택한 메뉴의 밸류값이 지불 비용보다 낮은 경우 프로그램을 종료한다
            if(total<map.get(menu)){
                System.out.println("돈이 부족합니다");
            }
            else{
                System.out.println("거스름돈은 "+(total-map.get(menu))+"원 입니다.");
            }
        }

    }
}
  • Map은 key값과 value값을 하나의 쌍으로 저장할 수 있다
  • 배열처럼 순서로 값을 구하는 것이 아니라 key값을 통해 value값을 얻음
  • 따라서 저장 순서를 유지하지 않는다.
Map<자료형,자료형> map1 = new Hashmap<>();

Map<자료형,자료형> map2 = Map.of(key,value,key,value...);
//추가(put)가 불가능해짐 -> 불변(Immutable Map) 맵
  • Map을 선언할 때 Hashmap으로 선언하는 이유는, Map자체는 인터페이스이기 때문이다
  • HashMap은 Map을 바탕으로 만들어진 클래스이기 때문에 위처럼 선언해야한다.
  • map.get(key)를 통해서 value값을 받아올 수 있다
  • map.containsKey(key)를 통해서 true/false를 얻을 수 있다

0개의 댓글