Published 2022. 11. 10. 14:59

*map의 특징 : 키값과 데이터(value)를 세트로 저장, 순서 유지 안됨, key값은 중복안됨

-map의 여러 메소드 

 -HashMap 생성 구문 

HashMap<String,Snack> hm = new HashMap<>();


1. ✔put(K Key, V 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);//{키 =value, 키=value ,..}

>>출력결과 
{다이제=Snack [flavor=초코맛, calory=1500], 새우깡=Snack [flavor=짠맛, calory=500], 포테이토칩=Snack [flavor=짠맛, calory=500], 칸초=Snack [flavor=단맛, calory=600]}

hm.put("새우깡",new Snack("매운맛", 700));
System.out.println(hm); // 새로담긴값으로 덮어씌워짐

>>출력결과 
{다이제=Snack [flavor=초코맛, calory=1500], 새우깡=Snack [flavor=매운맛, calory=700], 포테이토칩=Snack [flavor=짠맛, calory=500], 칸초=Snack [flavor=단맛, calory=600]}
->동일한 키값으로 다시 추가하는 경우 value값이 덮어 씌워짐 (중복된 키값은 공존할 수 없음)
//키값은 식별자같은 개념

2. ✔get(Object key): V => 컬렉션에서 해당 키값을 가지는 Value값을 반환해주는 메소드 

Snack s = /*(Snack)*/hm.get("다이제");
System.out.println(s);

>>출력결과    Snack [flavor=초코맛, calory=1500]

3. size() : 컬렉션에 담겨있는 객체들의 갯수 반환

System.out.println("몇개 : " +hm.size());

>>출력결과    몇개 : 4

4. replace(K Key, V value) => 컬렉션에서 해당 키값 찾아서 다시 전달한 Value값으로 수정해주는 메소드 

hm.replace("포테이토칩", new Snack("겁나짠맛",1000));
System.out.println(hm);

>>출력결과
{다이제=Snack [flavor=초코맛, calory=1500], 새우깡=Snack [flavor=매운맛, calory=700], 포테이토칩=Snack [flavor=겁나짠맛, calory=1000], 칸초=Snack [flavor=단맛, calory=600]}

5. remove(Object key) =>컬렉션에서 해당 키값을 찾아서 그 키밸류 세트를 삭제시켜주는 메소드

hm.remove("포테이토칩");
System.out.println(hm);

>>출력결과
{다이제=Snack [flavor=초코맛, calory=1500], 새우깡=Snack [flavor=매운맛, calory=700], 칸초=Snack [flavor=단맛, calory=600]}

- map 공간에 담긴 모든 키밸류 세트 접근가능
for 문이나 ArrayList에 옮겨담아 접근하기는 불가 

**Iterator 반복문 이용 하기 : Map => Set => Iterator 


1.(Map=> Set) keySet()이용 : 키값들만 Set계열로 변경

// 1) hm.ketSet() : Set
Set<String> keySet = hm.keySet();
//2) KeySet.iterater(): Iterator
Iterator<String> itKey = keySet.iterator();
// 3) 반복문을 이용해서 iterator에 순차적 접근 
while(itKey.hasNext()) {/*itKey 공간으로부터 뽑을 객체가 있을경우*/
	String key = /*(String)*/itKey.next();
	Snack value =/*(Snack)*/hm.get(key);
	System.out.println(key + "=" + value);

2.(Map=> Set) entrySet()이용 

//1) entrySet에 hashmap 담기
  Set<Entry<String,Snack>> entrySet = hm.entrySet();
		
//2) enctrySet값을 iterator에 담기 
  Iterator<Entry<String,Snack>> itEntry = entrySet.iterator();
		
//3) 반복문을 이용해서 순차적접근
  while(itEntry.hasNext()){
    Entry<String,Snack> entry = itEntry.next();
	String key = entry.getKey();
	Snack value = entry.getValue();
	System.out.println(key + "="+ value);
  }

 

'JAVA' 카테고리의 다른 글

자바 스트림(Stream)  (0) 2023.04.06
13.Collection_Map_Properties  (0) 2022.11.10
13.Collection_ Set_ HashSet  (0) 2022.11.10
13. Collection_ List_ArrayList 와 Generic  (0) 2022.11.09
13_ Collection _Collection과 List_ArrayList  (0) 2022.11.08
복사했습니다!