
<key, value> 쌍으로 저장
key 는 중복 ❌
만약 중복되면 원래 있던 값을 나중에 들어온 값으로 대체 후 key값을 유지
put(Object, Object)
key, value 값을 저장
get(Object)
key 값을 매개변수로 받아 값을 꺼내기
keySet()
key 값을 한 번에 불러오기
Map 은 인터페이스이기 때문에 new 연산자를 이용해서 객체를 만들 수 가 없다.
따라서 HashMap() 을 이용해서 만들어준다.
import java.util.*;
public class MapExam {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "Sara");
map.put(2, "Anthony");
map.put(1, "Kevin");
map.put(3, "Kyle");
System.out.println(map.keySet());
System.out.println("---------------------------");
System.out.println(map.get(2));
System.out.println("---------------------------");
//using set to get all value and keys in the map
Set<Integer> keys = map.keySet();
Iterator<Integer> iterator = keys.iterator();
while(iterator.hasNext()){
int key= iterator.next();
String value = map.get(key);
System.out.println(key + " " + value);
}
System.out.println("---------------------------");
for(int i=1;i<=map.size();i++){
System.out.println(i +" "+ map.get(i));;
}
System.out.println("---------------------------");
}
}

map.put(1, "Sara");
map.put(2, "Anthony");
map.put(1, "Kevin");
map.put(3, "Kyle");
key 값이 중복되면 원래 값은 버리고 나중에 들어온 값으로 대체한다는 것을 볼 수 있는 코드이다.
결과 사진을 보면 1번 key 에 Sara 가 아닌 Kevin 이 들어가 있는 것을 볼 수 있다.
key와 value를 한 번에 출력하는 방법이다.
//using set to get all value and keys in the map
Set<Integer> keys = map.keySet();
Iterator<Integer> iterator = keys.iterator();
while(iterator.hasNext()){
int key= iterator.next();
String value = map.get(key);
System.out.println(key + " " + value);
}
key 값을 Set 으로 넘겨준다.
set 으로 넘어간 key 값을 iterator 로 꺼내준다.
그리고 하나씩 넘어오는 key 값을 map 으로 받아서 value 와 함께 출력해주면 된다.
아래는 내가 for 문으로 꺼내본 코드다.
출력은 같게 되나 정확히 같은지는 모르겠다.
for(int i=1;i<=map.size();i++){
System.out.println(i +" "+ map.get(i));;
}