Map의 데이터를 추가할때는 put() 메서드를 사용한다.
HashMap<String, String> map = new HashMap<>();
map.put("오늘 야식", "치킨");
map.put("먹고싶은거", "커피");
}
HashMap 역시 제네릭을 사용하고 위의 코드에서는 key, value 모두 String 타입을 사용했다.
그럼 위의 코드에서 치킨을 반환받고 싶다면 어떻게 해야할까?
get() 메서드를 사용하면 된다.
key값을 입력하면 그 key 값에 해당하는 value 를 반환 받는 메서드이다.
System.out.println(map.get("오늘 야식"));
위의 코드처럼 작성하면 key의 값 "오늘 야식"에 해당하는 "치킨"을 반환하여 출력 한다.
map 에 몇개의 데이터가 입력 되있는지 확인하고 싶다면 어떻게 해야할까?
size() 메서드를 사용하면 된다.
현재 map에 저장되어있는 데이터의 개수를 반환한다.
System.out.println(map.size());
위의 코드를 작성하여 실행하면 두개의 데이터가 저장 되어있으니까 2가 출력된다.
이제 내가 필요없는 데이터라고 생각하여 삭제하고 싶다면 어떻게 해야할까?
remove() 메서드를 사용하면 된다.
remove(key) 이런식으로 삭제하고 싶은 key값을 입력하면 map에서 그 key 값에 해당하는 key,value 값을 모두 삭제하고 삭제한 value를 반환한다.
System,out.println(map.remove("먹고싶은거");
위의 코드를 작성하여 실행하면 "커피"가 출력된다.
내가 Map에 어떤 데이터가 저장되어 있는지 모른다고 하자. 내가 원하는 데이터가 Map에 저장되어 있는지 알고싶다면 어떻게 해야할까?
containskey() 메서드를 사용하면 된다.
containskey(key) 이런식으로 내가 알고 싶은 key 값을 적어준다면 Map에 해당 key값이 있는지 확인하고 있다면 true, 없다면 false를 반환한다.
System.out.println(map.containskey("오늘 야식");
위의 코드를 작성하여 실행하면 true를 출력한다.
gey() 메서드를 사용하였는데 만약 그 값이 없다면?
원래는 없다면 null 이 출력된다. 하지만 다른 값으로 반환 받고 싶다면 이때 getorDefault() 메서드를 사용하면 된다.
getDefaule(key,"key가 없다면 반환받고 싶은 값") 이런식으로 내가 알고 싶은 value에 해당되는 key 갑을 넣었는데 Map 에 없다면 사용자가 입력한 값이 반환된다.
System.out.println(map.get("지금 먹고싶은거");
System.out.println(map.getorDefault("지금 먹고싶은거","피자");
위의 코드는 현재 Map에 "지금 먹고싶은거" key값이 없기 때문에 null이 출력 된다. getorDefault() 메서드를 사용하면 "피자"가 출력된다.
System.our.println(map.keyset());
위의 코드와 같이 keyset() 메서드를 사용한다면 현재 Map에 저장되어있는 key값을 모아서 set 자료형으로 반환한다.