ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Map
    Java 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

     

    'Java' 카테고리의 다른 글

    List  (0) 2023.06.27
    날짜 클래스 (자바 8 이후)  (0) 2023.06.27
    slf4j log4j logback log4j2  (0) 2023.01.27
    래퍼(Wrapper) 클래스  (0) 2023.01.01
    Integer.parseInt와 Integer.valueOf  (0) 2022.12.31
Designed by Tistory.