CodeGym /Java Blog /무작위의 /Java의 LinkedHashMap
John Squirrels
레벨 41
San Francisco

Java의 LinkedHashMap

무작위의 그룹에 게시되었습니다

Java의 LinkedHashMap이란 무엇입니까?

Collections 프레임워크의 LinkedHashMap 클래스는 Map 인터페이스 HashtableLinkedList 구현 입니다 . 항목을 Hashtable에 저장 하고 내부적으로 이중 연결 목록을 사용하여 삽입 순서를 유지합니다. 이 LinkedList는 키가 Map 에 삽입된 순서인 삽입 순서를 정의합니다 . HashMap 은 빠른 삽입 , 검색삭제 의 이점을 제공했지만 LinkedHashMap 에서는 LinkedList 구현이 삽입 순서도 유지합니다. Java의 LinkedHashMap - 1

LinkedHashMap의 특징

  1. 여기에는 키를 기반으로 하는 값이 포함됩니다.
  2. 독특한 요소가 포함되어 있습니다.
  3. 하나의 null 키와 여러 개의 null 값이 있을 수 있습니다.
  4. 비동기화되어 있습니다.
  5. 반복 비용이 더 많이 발생하는 삽입 순서를 유지합니다.

성능 요인

LinkedHashMap 의 성능은 주로 아래에 설명된 두 가지 요소에 따라 달라집니다.

용량

용량은 저장할 수 있는 항목 수를 의미합니다. 매개변수가 제공되지 않으면 기본 용량은 16 입니다. 로드 요소 로드 요소는 HashMap이 매개 변수로 제공된 특정 비율로 채워질 때마다 크기가 두 배인 새 HashMap이 생성되고 모든 항목이 이 새 항목으로 이동됨을 의미합니다. HashMap의 기본 로드 비율은 0.75 입니다 . 채우기 비율 이라고도 합니다 .

LinkedHashMap 선언

LinkedHashMap 을 생성하려면 먼저 java.util.LinkedHashMap 패키지를 가져와야 합니다 .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
여기서 Key는 맵의 키 유형입니다. 값은 맵에 매핑된 값의 유형입니다. 12 는 맵에 12개의 항목을 저장한다는 의미입니다. 0.5f 는 50%가 채워지면 새 맵을 생성 하고 모든 값을 이 새 맵으로 이동 한다는 것을 의미하는 로드 요소입니다 .

LinkedHashMap의 일반적인 방법

다음은 LinkedHashMap 의 몇 가지 일반적인 메서드 목록입니다 .
행동 양식 설명
분명한() 지도의 모든 매핑을 제거합니다.
containValue(객체 값) 맵이 키를 지정된 값에 매핑하면 true를 반환합니다.
엔트리셋() 맵의 매핑에 대한 Set 뷰를 반환합니다.
get(객체 키) 지정된 키에 대한 값을 반환하거나 키가 지정되지 않은 경우 null을 반환합니다.
키세트() 맵에 있는 키의 Set 뷰를 반환합니다.
값() 맵에 있는 값의 컬렉션 뷰를 반환합니다.
getOrDefault(객체 키, V defaultValue) 지정된 키가 연결된 값을 반환하고, 연결된 키가 없으면 defaultValue를 반환합니다.

LinkedHasMap 예

import java.util.LinkedHashMap;

class Main {
    public static void main(String[] args) {
        // Creating a LinkedHashMap of odd numbers
        LinkedHashMap<String, Integer> oddNumbers = new LinkedHashMap<>();
        // Using the put() method
        oddNumbers.put("One", 1);
        oddNumbers.put("Three", 3);
        System.out.println("LinkedHashMap1: " + oddNumbers);

        // Creating another LinkedHashMap
        LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
        numbers.put("Two", 2);
        // Using putAll() method
        numbers.putAll(oddNumbers);
        System.out.println("LinkedHashMap2: " + numbers);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());

        // Using keySet() method
        System.out.println("Keys: " + numbers.keySet());

        // Using values() method
        System.out.println("Values: " + numbers.values());

        // Using get() method
        int value1 = numbers.get("Three");
        System.out.println("Returned Number: " + value1);

        // Using getOrDefault() method
        int value2 = numbers.getOrDefault("Five", 5);
        System.out.println("Returned Number: " + value2);

        // Using remove() method
        int value = numbers.remove("Two");
        System.out.println("Removed value: " + value);

        // Using entrySet() method
        System.out.println("Key/Value mappings: " + numbers.entrySet());
    }
}

산출

LinkedHashMap1: {One=1, Three=3} LinkedHashMap2: {Two=2, One=1, Three=3} 키/값 매핑: [Two=2, One=1, Three=3] 키: [Two, One , Three] 값: [2, 1, 3] 반환된 숫자: 3 반환된 숫자: 5 제거된 값: 2 키/값 매핑: [One=1, Three=3]

LinkedHashMap과 HashMap 비교

둘 다 Map 인터페이스를 구현하는 반면, 둘 사이의 몇 가지 차이점을 살펴보겠습니다 .
  1. LinkedHashMap은 내부적으로 이중 연결 목록을 구현하므로 삽입 순서를 유지합니다.
  2. LinkedHashMap은 LinkedList를 구현하므로 더 많은 저장 공간이 필요합니다 .
  3. 성능과 관련하여 LinkedHashMap은 HashMap 보다 느립니다 .

결론

Java의 LinkedHashMap 클래스, 다양한 메소드 및 구현을 이해하시기 바랍니다 . 자유롭게 연습하고 도움이 더 필요할 때마다 다시 방문하세요. 즐거운 학습!
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION