*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 |