JAVA

자바 Map

커피마시기 2023. 9. 27. 23:01

 

 

 

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