CodeGym /จาวาบล็อก /สุ่ม /LinkedHashMap ใน Java
John Squirrels
ระดับ
San Francisco

LinkedHashMap ใน Java

เผยแพร่ในกลุ่ม

LinkedHashMap ใน Java คืออะไร

คลาสLinkedHashMapของเฟรมเวิร์ก Collections คือ การใช้งาน HashtableและLinkedListของอินเทอร์เฟซMap โดยจะจัดเก็บรายการไว้ในHashtableและใช้รายการที่เชื่อมโยงแบบทวีคูณภายในเพื่อรักษาลำดับการแทรก LinkedList นี้กำหนดลำดับการ แทรกซึ่งเป็นลำดับที่คีย์ถูกแทรกลงในMap HashMap ให้ประโยชน์ของการแทรกการค้นหาและการลบ อย่าง รวดเร็วแต่ในLinkedHashMapการใช้งานLinkedListจะรักษาลำดับการแทรกไว้เช่นกัน LinkedHashMap ใน Java - 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
วิธีการ คำอธิบาย
ชัดเจน() ลบการแมปทั้งหมดในแผนที่
มีค่า (ค่าวัตถุ) คืนค่าเป็นจริงหากแผนที่จับคู่คีย์กับค่าที่ระบุ
รายการชุด() ส่งกลับมุมมองการตั้งค่าของการแมปในแผนที่
รับ (คีย์วัตถุ) ส่งกลับค่าตามคีย์ที่ระบุหรือค่า 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: {หนึ่ง=1, สาม=3} LinkedHashMap2: {สอง=2, หนึ่ง=1, สาม=3} การแมปคีย์/ค่า: [สอง=2, หนึ่ง=1, สาม=3] คีย์: [สอง หนึ่ง , สาม] ค่า: [2, 1, 3] หมายเลขที่ส่งคืน: 3 หมายเลขที่ส่งคืน: 5 ค่าที่ลบออก: 2 การแมปคีย์/ค่า: [หนึ่ง=1, สาม=3]

LinkedHashMap กับ HashMap

เรามาดูความแตกต่างระหว่างพวกเขาบ้าง ในขณะที่ทั้งคู่ใช้อินเทอร์เฟซแผนที่
  1. LinkedHashMapรักษาลำดับการแทรกในขณะที่ใช้รายการที่เชื่อมโยงแบบทวีคูณภายใน
  2. LinkedHashMap ต้องการพื้นที่เก็บข้อมูล เพิ่มเนื่องจากใช้งานLinkedList
  3. ใน ด้านประสิทธิภาพLinkedHashMapจะช้ากว่าHashMap

บทสรุป

เราหวังว่าคุณจะเข้าใจ คลาส LinkedHashMapใน Java วิธีการต่างๆ และการนำไปใช้งาน คุณสามารถฝึกฝนและกลับมาได้ทุกเมื่อที่คุณต้องการความช่วยเหลือเพิ่มเติม มีความสุขในการเรียนรู้!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION