■ Map
Map은 List나 배열처럼 순차적으로 값을 구하는 것이 아닌 key와 value(값)를 가진다
key는 중복이 되지 않으나 value(값)는 중복이 가능하며 저장 순서가 유지되지 않는다
Map<K, V> map = new HashMap<>(); // 사용할 key와 value의 타입을 넣어주면된다
● 메소드
- put - 주어진 키로 값을 저장하는 메서드이며 이전에 동일한 key가 있는 경우에는 기존의 value(값)을 대체한다
Map<Integer, String> map = new HashMap<>();
map.put(1, "고양이");
map.put(1, "강아지");
- containsKey - 주어진 키가 있으면 true, 없으면 false를 반환한다
- containsValue - 주어진 값이 있으면 true, 없으면 false를 반환한다
- get - 주어진 key에 해당하는 value(값)을 리턴한다
Map<Integer, String> map = new HashMap<>();
map.put(1, "고양이");
map.put(2, "호랑이");
map.get(2);
System.out.println(map.get(2));
- size() - 저장된 객체의 총 개수를 리턴한다.
- clear() - Map의 모든 key와 value를 삭제한다
- remove - 주어진 키와 일치하는 Map 객체를 삭제하고 값을 리턴한다
- keySet() - 모든 key를 Set 개게에 담아서 리턴한다
■ Map 활용해보기
- 배웠던 생성자를 같이 활용해서 Map을 써보기 위해 Note1 클래스에 필드, 생성자, 출력 메서드를 만들어주었다
public class Note1 { // 필드
private int num;
private String animal;
public Note1(int num, String animal) { // 생성자
this.num = num;
this.animal = animal;
}
public void disp() { // 출력 메서드
System.out.println(num +"번 " + animal + "입니다.");
}
}
- Main 클래스에서 Map을 생성하여 key와 value(Note1 객체)에 대한 값을 넣어주었다
public class Main {
public static void main(String[] args) {
Map<String, Note1> map = new HashMap<>();
map.put("1", new Note1(1, "강아지"));
map.put("2", new Note1(2, "고양이"));
map.put("3", new Note1(3, "판다"));
- 이후 map.size()를 써서 개수를 확인 하였고 forEach를 활용하여 key와 value에 넣어놓은 값에 대한 출력메서드를 적어주었다
- 3개의 put 값이 잘 들어간것을 확인하고 map.remove를 통해 map에 들어가 있는 key = "1" 을 삭제하고 잘 삭제가 되었는지 forEach문을 다시 써서 확인 해보았다
public class Main {
public static void main(String[] args) {
Map<String, Note1> map = new HashMap<>();
map.put("1", new Note1(1, "강아지"));
map.put("2", new Note1(2, "고양이"));
map.put("3", new Note1(3, "판다"));
System.out.println("size는 " + map.size());
map.forEach((k,v)->{
Note1 note1 = map.get(k);
note1.disp();
});
System.out.println("");
map.remove("1");
map.forEach((k,v)->{
Note1 note1 = map.get(k);
note1.disp();
});
}
}
- 전체 코드에 대한 출력
Today short review
배운것을 토대로 새로 만들어 보았는데 틀린점이나 잘못 알고 있는 부분이 있다면 알려주시면 감사하겠습니다
'JAVA' 카테고리의 다른 글
자바 인터페이스(Interface) (0) | 2023.10.06 |
---|---|
자바 상속 extends (0) | 2023.09.29 |
자바 List (0) | 2023.09.23 |
자바 - 배열/객체 배열 (0) | 2023.09.20 |
자바 (클래스/객체/메소드) (0) | 2023.09.18 |