home
자바
home
🎖️

01. hashMap

1. Snack (객체)

package com.kh.chap03_map.part01_hashMap.model.vo; public class Snack { private String flavor; private int calory; public Snack() {} public Snack(String flavor, int calory) { this.flavor = flavor; this.calory = calory; } public String getFlavor() { return flavor; } public void setFlavor(String flavor) { this.flavor = flavor; } public int getCalory() { return calory; } public void setCalory(int calory) { this.calory = calory; } @Override public String toString() { return "Snack [flavor=" + flavor + ", calory=" + calory + "]"; } }
Java
복사

2. MapRun

key, value 값 저장
hashMap 반복문 이용시 set으로 바꿔주는 메소드 사용해서 iterator() 사용
package com.kh.chap03_map.part01_hashMap.run; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import com.kh.chap03_map.part01_hashMap.model.vo.Snack; public class MapRun { public static void main(String[] args) { HashMap<String, Snack> hm = new HashMap<>(); // K --> Key // V --> Value // 1. put(K key, V value) : 해당 맵에 key, value 세트로 저장시켜주는 메소드 hm.put("다이제", new Snack("초코맛", 1500)); hm.put("칸초", new Snack("단맛", 600)); hm.put("새우깡", new Snack("짠맛", 500)); hm.put("포테이토칩", new Snack("짠맛", 500)); System.out.println(hm); // 저장되는 순서 유지되지않음 hm.put("새우깡", new Snack("매운맛", 800)); // 중복된 키값이 이미 존재할 경우 새로이 추가되는 value로 덮어씌워짐 System.out.println(hm); // 2. get(Object key) : V => 해당 맵으로부터 전달되는 key에 해당하는 value 반환 System.out.println(hm.get("다이제")); System.out.println(hm.get("다이제").getFlavor()); // 3. size() : 해당 맵에 담긴 key+value 세트의 개수 반환 System.out.println(hm.size()); // 4. replace(K key, V value) : 해당 맵으로부터 전달된 key 찾아서 그에 해당하는 value값을 새로이 전달되는 value 변경시켜주는 메소드 hm.replace("포테이토칩", new Snack("겁나짠맛", 1000)); System.out.println(hm); // 5. remove(Object key) : 해당 맵으로부터 전달된 key값 찾아서 key+value 세트 제거해주는 메소드 hm.remove("다이제"); System.out.println(hm); // HashMap에 담겨있는 모든 것들에 순차적으로 접근하고자 할 때 쓰이는 방법 // for문 안됨, ArrayList에 담아서 출력하는거 안됨 //ArrayList list = new ArrayList(hm); // Iterator를 이용할 수 밖에 없음!! //hm.iterator(); => 바로 호출 불가!! 왜? iterator()는 List계열 또는 Set계열에서만 쓸 수 있는 메소드!! // Map을 Set으로 바꿔주는 메소드 제공함!! // K+V 값을 keySet() 메소드로 K로 바꿀 수 있다. // 1) hm에 있는 키들만 Set에 담기 Set<String> ks = hm.keySet(); // 2) ks에 담겨있는 키들 Iterator에 담기 Iterator<String> it = ks.iterator(); // 3) 반복문을 이용해서 하나씩 뽑아내기 while(it.hasNext()) { String key = it.next(); System.out.println("key : " + key); System.out.println("value : " + hm.get(key)); } } }
Java
복사