[Collection2] : Map

이수보🧑🏻‍💻·2022년 1월 13일
0

초급

목록 보기
21/25

Map

앞서 List 부분에서 Wrapper 가 무엇인지, 제네릭, List/Map/Set 이 인터페이스란 사실 등등 많은 걸 미리 설명했기 때문에 Map은 간단하게 설명하겠습니다.

Map은 앞서 설명했던 List와 마찬가지로 인터페이스입니다. 때문에 Map을 상속받아 사용하는 클래스로 HashMap을 주로 사용합니다.


Map 이란

주로 DB의 테이블 구조를 설명할 때 많이 사용합니다.
테이블의 구조를 한 번 생각해 볼까요??

이름    나이    지역
aaa     23     대전
bbb     35     서울

위 처럼 테이블이 있다고 칩시다. 그럼 서울의 Key 값은 무엇일까요?
서울을 가르키는 지역이 바로 key 값입니다.

이렇게 테이블은 Key와 Value로 구성된다고 보면 됩니다.

그럼 Map이 테이블 구조 설명에 용이하다 했는데 그렇다는 것은,,
Map 이 Key값과 Value 값으로 이루어져 있기 때문입니다.

이 말은 또 다르게 저장을 메모리 주소에 하는 것이 아닌 Key에 하기 때문에
Map에서는 index 라는 개념이 존재하지 않아 순서가 없습니다.

그럼 값을 어떻게 꺼내?? 라고 고민할 텐데 방금 봤잖아요 Key 가 있다고 --
값을 꺼내기 위해서는 Key를 사용해야 합니다.

키가 가장 중요 값을 저장할 때도 키의 이름으로 저장하고 키의 이름으로 값을 꺼내고 어떤 타입이 나올지를 예상할 수 도 있음.!!!!!!!!

Map에도 제네릭이?
저장 시 키와 값을 같이 저장 그래서 무조건 제네릭은 두개여야 합니다.
이유는 Key의 타입 Value 의 타입을 지정해줘야 하기 때문이죠 ㅎㅎ

사용형식

HashMap<String, Object> map = new HashMap<String, Object>();
제네릭 안 순서대로 key의 타입 value의 타입을 지정해주고 있습니다.


다양한 메소드들

  • put(Key, Value); : 지정된 키와 값을 저장합니다.
  • remove(key); : 지정된 키로 저장된 값을 제거합니다.
  • get(key); : 지정된 키의 값(값이 없으면 Null)을 반환
  • keySet(); : 저장된 모든 키를 Set으로 반환한다
    -> 무슨 Key였는지 알고 싶을때 주로 사용

Map은 반복을 어떻게 할까?

Map에서 값을 가져오려면 key를 알아야 합니다. 때문에 keySet()메서드를 활용합니다.

Set<String> allKey = map.keySet();

Iterator<String> it = keySet.iterator();

while(it.hasNext()){
	String key = it.next();	// key값 1개 읽어오기
	String value = map.get(key);
	System.out.println("fdfs : " + key + " : "+value);
}



메소드를 봐도 대부분 Key의 관련된 메소드들입니다. 더욱 수많은 ~~ 메소드가 많이 있지만 주로 사용하는 것들만 적었습니다. 궁금하다면 Map클래스를 방문해보세용

메소드로 짐작할 수 있듯 Key 굉장히 중요하다는 것을 알 수 있죠?
그러니 그 점 잘 기억하면서 다음 시간에 만나겠습니다.

정리
Map, HashMap, 제네릭타입이 2개, key 중요, Index없음

0개의 댓글