Java

Map

개발게발 2023. 6. 26. 03:04

 

Map

  • 인터페이스
  • 키와 값을 하나의 쌍으로 저장하는 방식(key-value)
  • 키는 중복을 허용하지 않지만, 값은 중복을 허용
  • 요소의 저장 순서를 유지X
  • 주요 클래스 
    • HashMap<K, V>
    • LinkedHashMap<K, V>
    • TreeMap<K, V>

 

HashMap

HashMap<String, Object> hashMap = new HashMap<String, Object>();
  • Hashtable의 개선버전
  • 배열 + 링크드 리스트의 구조

 


HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("apple", "apple");
hashMap.put("tomato", "tomato");
hashMap.put("banana", "banana");

System.out.println(hashMap.toString());
{banana=banana, apple=apple, tomato=tomato}

순서대로 저장 X

 

 

※ 참고

Map<String, Object> map = new Map<String, Object>();
Map<String, Object> map = new HashMap<String, Object>();

Map 선언 시 첫번째 코드가 아닌 두번째 코드를 사용한다. 이렇게 사용하는 이유는 Map이 인터페이스이기 때문이다.

따라서 Body를 직접 작성할 수 없다. HashMap은 Map 인터페이스를 구현했다.

 

 

Map<String, Object> map = new HashMap<String, Object>();
HashMap<String, Object> map = new HashMap<String, Object>();

Map을 구현한 객체는 여러 가지가 있다. 그리고 이 여러가지 Map들은 Map interface를 구현하는 구조로 되어있다.

그렇기 때문에 첫번째 코드처럼 Map 인터페이스로 HashMap을 사용하게 되면 나중에 HashMap이 아닌 다른 종류의 Map을 사용하게 되더라고 수정이 용이하다.

 

 

LinkedHashMap

LinkedHashMap<String, Object> linkedHashMap = new LinkedHashMap<String, Object>();
  • HashMap을 확장하는 클래스
  • 요소의 저장 순서를 유지O

 


LinkedHashMap<String, Object> linkedHashMap = new LinkedHashMap<String, Object>();
linkedHashMap.put("apple", "apple");
linkedHashMap.put("tomato", "tomato");
linkedHashMap.put("banana", "banana");

System.out.println(linkedHashMap.toString());
{apple=apple, tomato=tomato, banana=banana}

순서대로 저장 O

 

 

TreeMap

  • 이진트리를 기반
  • 정렬된 상태에서 데이터를 조회해야 하는 범위 검색에 성능이 좋음
  • Red-Black 트리로 구현

 


TreeMap<String, Object> treeMap = new TreeMap<String, Object>();
treeMap.put("apple", "apple");
treeMap.put("tomato", "tomato");
treeMap.put("banana", "banana");

System.out.println(treeMap.toString());
{apple=apple, banana=banana, tomato=tomato}

 

 

 

출처 :

https://myeongdev.tistory.com/23

https://limreus.tistory.com/9

https://velog.io/@neity16/Java-%EA%B8%B0%EB%B3%B8-6-CollectionList-Set-Map-Iterator-%EC%9C%A0%ED%8B%B8-%ED%81%B4%EB%9E%98%EC%8A%A4Arrays-Collections

https://web-inf.tistory.com/44