CodeGym /Blog Java /Ngẫu nhiên /LinkedHashMap trong Java

LinkedHashMap trong Java

Xuất bản trong nhóm

LinkedHashMap trong Java là gì?

Lớp LinkedHashMap của khung Bộ sưu tập là cách triển khai HashtableLinkedList của giao diện Bản đồ . Nó lưu trữ các mục của nó trong Hashtable và sử dụng danh sách liên kết đôi bên trong để duy trì thứ tự chèn. LinkedList này xác định thứ tự chèn là thứ tự các khóa được chèn vào Map . HashMap mang lại lợi ích cho việc chèn , tìm kiếmxóa nhanh chóng nhưng trong LinkedHashMap việc triển khai LinkedList cũng duy trì thứ tự chèn .LinkedHashMap trong Java - 1

Các tính năng của LinkedHashMap

  1. Nó chứa các giá trị dựa trên khóa.
  2. Nó chứa các yếu tố độc đáo.
  3. Nó có thể có một khóa null và nhiều giá trị null.
  4. Nó không được đồng bộ hóa.
  5. Nó duy trì thứ tự chèn khiến cho việc lặp lại tốn kém hơn.

Yếu tố hiệu suất

Hiệu suất của LinkedHashMap chủ yếu phụ thuộc vào hai yếu tố được mô tả bên dưới.

Dung tích

Dung lượng có nghĩa là số lượng mục nó có thể lưu trữ. Dung lượng mặc định là 16 nếu không cung cấp tham số. Hệ số tải Hệ số tải có nghĩa là bất cứ khi nào HashMap được điền vào một tỷ lệ phần trăm cụ thể được cung cấp dưới dạng tham số, HashMap mới sẽ được tạo có kích thước gấp đôi và tất cả các mục được chuyển sang mục mới này. Hệ số tải mặc định cho HashMap là 0,75 . Nó còn được gọi là tỷ lệ lấp đầy .

Tuyên bố của LinkedHashMap

Để tạo LinkedHashMap , trước tiên, chúng ta cần nhập gói java.util.LinkedHashMap .
LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Ở đây Key là loại chìa khóa có trong bản đồ. Giá trị là loại giá trị được ánh xạ trong bản đồ. 12 là dung lượng có nghĩa là nó sẽ lưu trữ 12 mục trên bản đồ. 0,5f là hệ số tải, nghĩa là khi được điền 50% thì nó sẽ tạo Bản đồ mới và di chuyển tất cả các giá trị sang bản đồ mới này.

Các phương pháp phổ biến của LinkedHashMap

Dưới đây là danh sách một số phương thức phổ biến của LinkedHashMap .
phương pháp Sự miêu tả
thông thoáng() Xóa tất cả ánh xạ trong bản đồ.
chứaValue(Giá trị đối tượng) Trả về true nếu bản đồ ánh xạ khóa tới giá trị đã chỉ định.
mục nhập() Trả về chế độ xem Đặt của ánh xạ trong bản đồ.
get(Khóa đối tượng) Trả về giá trị đối với khóa được chỉ định hoặc null nếu không có khóa nào được chỉ định.
bộ chìa khoá() Trả về chế độ xem Đặt các phím trong bản đồ.
giá trị() Trả về chế độ xem Bộ sưu tập của các giá trị trong bản đồ.
getOrDefault(Khóa đối tượng, V defaultValue) Trả về giá trị mà khóa đã chỉ định được liên kết hoặc defaultValue nếu không có khóa nào được liên kết.

Ví dụ về 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());
    }
}

đầu ra

LinkedHashMap1: {Một=1, Ba=3} LinkedHashMap2: {Hai=2, Một=1, Ba=3} Ánh xạ khóa/giá trị: [Hai=2, Một=1, Ba=3] Phím: [Hai, Một, Ba] Giá trị: [2, 1, 3] Số trả về: 3 Số trả về: 5 Giá trị đã xóa: 2 Ánh xạ khóa/giá trị: [Một=1, Ba=3]

LinkedHashMap so với HashMap

Chúng ta hãy xem một số khác biệt giữa chúng, trong khi cả hai đều triển khai giao diện Bản đồ .
  1. LinkedHashMap duy trì thứ tự chèn khi nó triển khai danh sách liên kết đôi bên trong.
  2. LinkedHashMap cần nhiều bộ nhớ hơn khi triển khai LinkedList .
  3. Về hiệu suất, LinkedHashMap chậm hơn HashMap .

Phần kết luận

Chúng tôi hy vọng bạn hiểu lớp LinkedHashMap trong Java, các phương thức khác nhau và cách triển khai chúng. Hãy thoải mái thực hành và quay lại bất cứ khi nào bạn cần thêm trợ giúp. Chúc bạn học tập vui vẻ!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION