[Java]Map 컬렉션

2025. 2. 7. 15:36·Java

자판기 프로그램을 만드는 도중  단순한 printf 를 출력하기 보다 Map 컬렉션을 사용하면 더 효과적일 수 있을거같았다.

✅ Map이란?

Map은 키+키 값으로 구성된 엔트리 객체이다.

(키 중복 x , 값 중복  ㅇ)

단, 저장 순서는 중요하지 않다.

 

기본 형태

HashMap

Map<키 타입,값 타입> = new HashMap<키 타입,값 타입>();

 

 

예를 들어 키의 값을 String 타입 , 값을 Integer 타입으로 갖는다면  아래와 같이 작성 할수 있다.

Map(String,Integer>map = new HashMap<String,Integer>();
Map(String,Integer>map = new HashMap<>();

 

 

HashMap <k,v> 주요 메소드

 

void clear() 해당 맵(map)의 모든 매핑(mapping)을 제거함.
boolean containsKey(Object key) 해당 맵이 전달된 키를 포함하고 있는지를 확인함.
boolean containsValue(Object value) 해당 맵이 전달된 값에 해당하는 하나 이상의 키를 포함하고 있는지를 확인함.
V get(Object key) 해당 맵에서 전달된 키에 대응하는 값을 반환함.
만약 해당 맵이 전달된 키를 포함한 매핑을 포함하고 있지 않으면 null을 반환함.
boolean isEmpty() 해당 맵이 비어있는지를 확인함.
Set<K> keySet() 해당 맵에 포함되어 있는 모든 키로 만들어진 Set 객체를 반환함.
V put(K key, V value) 해당 맵에 전달된 키에 대응하는 값으로 특정 값을 매핑함.
V remove(Object key) 해당 맵에서 전달된 키에 대응하는 매핑을 제거함.
boolean remove(Object key, Object value) 해당 맵에서 특정 값에 대응하는 특정 키의 매핑을 제거함.
V replace(K key, V value) 해당 맵에서 전달된 키에 대응하는 값을 특정 값으로 대체함.
boolean replace(K key, V oldValue, V newValue) 해당 맵에서 특정 값에 대응하는 전달된 키의 값을 새로운 값으로 대체함.
int size() 해당 맵의 매핑의 총 개수를 반환함.

 

https://computerreport.tistory.com/32

 

[Java]Lv2. 스파르타 자판기

문제 1.사용자가 볼 수 있게 메뉴를 표시합니다. 다음과 같은 음료를 실행창에 표시합니다. 사이다 1,700원 콜라 1,900원 식혜 2,500원 솔의눈 3,000원 2.사용자는 음료를 선택할 수 있습

computerreport.tistory.com

 

위 링크의 문제를 Map 컬렉션을 사용해 풀어보았다.

 

1. V put(K key, V value)

Map<String,Integer> beverages = new HashMap<String,Integer>();
		beverages.put("사이다",1700);
		beverages.put("콜라",1900);
		beverages.put("식혜",2500);
		beverages.put("솔의눈",3000);

 

put 메소드를 사용하여 baverages 라는 map 안에 데이터를 삽입 시킬수 있다.

 

◈ 만약,키가 같다면 마지막에 저장한 값만 저장된다

 

2. Set<K> keySet()

map 에 삽입되어있는 값을 출력하기위해 키 Set 컬렉션을 얻고 반복하여 키와 값을 출력한다.

Set<String> keySet =beverages.keySet();
		Iterator<String> KeyIterator=keySet.iterator();
		while(KeyIterator.hasNext())
		{
			String k=KeyIterator.next();
			Integer v =beverages.get(k);
			System.out.println(k + " : "+ v);
		}

 

 

3. V get(Object key)

입력한 key 에 해당하는 값을 얻고 싶다면 get 컬렉션을 사용하면 된다.

System.out.println(beverages.get("사이다"));

 

 

4. boolean containsKey(Object key)

입력한 키에 값의 유무를 판단하여 있다면 true 없으면 false 로 반환한다.

Scanner scanner =new Scanner(System.in);
		String userChoice = scanner.nextLine();
		if(beverages.containsKey(userChoice) == false)
		{
			System.out.print("실행을 종료합니다");
			System.exit(0);
		}

 

입력한 userChoice 가 bevarges map 컬랙션안에 해당하는 값이 없다면 실행을 종료시키는 코드이다.

 

4. V remove(Object key)

remove 메소드는 맵(Map)의 항목을 삭제하는 메소드로 key값에 해당되는 아이템(key, value)을 삭제한 후 그 value 값을 리턴한다.

System.out.println(bevarages.remove("사이다"));

 

사이다라는 키가 삭제되며 동시에 1700원을 출력 시킨다. 

만약, 자판기에 갯수가 한정되어있다면 사용하기 좋을거 같다.

 

'Java' 카테고리의 다른 글

[Java]Enum이란? & 사용법  (0) 2025.02.28
[Java]코드 스타일 및 명명 규칙  (0) 2025.02.24
[Java]난수 생성(math,Random)  (0) 2025.02.14
[Java]ArrayList  (0) 2025.02.11
[Java]객체 생성(new)  (0) 2025.02.06
'Java' 카테고리의 다른 글
  • [Java]코드 스타일 및 명명 규칙
  • [Java]난수 생성(math,Random)
  • [Java]ArrayList
  • [Java]객체 생성(new)
코딩로봇
코딩로봇
금융 IT 개발자
  • 코딩로봇
    쟈니의 일지
    코딩로봇
  • 전체
    오늘
    어제
    • 분류 전체보기 (143) N
      • JavaScript (8)
      • SQL (10)
      • 코딩테스트 (30)
        • Java (15)
        • SQL (13)
      • Java (10)
      • 프로젝트 (25) N
        • 트러블슈팅 (9)
        • 프로젝트 회고 (14) N
      • git,Github (2)
      • TIL (38) N
      • Spring (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스파르타 코딩 #부트캠프 #첫ot
    java #arraylist #list #배열
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩로봇
[Java]Map 컬렉션
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.