Apakah LinkedHashMap di Java?
Kelas LinkedHashMap bagi rangka kerja Koleksi ialah pelaksanaan Hashtable dan LinkedList bagi antara muka Peta . Ia menyimpan entrinya dalam Hashtable dan menggunakan senarai dua pautan secara dalaman untuk mengekalkan susunan sisipan. LinkedList ini mentakrifkan susunan sisipan yang merupakan susunan kekunci dimasukkan ke dalam Peta . HashMap memberikan faedah penyisipan cepat , carian dan pemadaman tetapi dalam LinkedHashMap pelaksanaan LinkedList mengekalkan susunan sisipan juga.![LinkedHashMap dalam Java - 1](https://cdn.codegym.cc/images/article/32fce3d5-f8bb-4b1a-86e6-6e596f8706e3/256.jpeg)
Ciri LinkedHashMap
- Ia mengandungi nilai berdasarkan kunci.
- Ia mengandungi elemen unik.
- Ia mungkin mempunyai satu kunci null dan beberapa nilai null.
- Ia tidak disegerakkan.
- Ia mengekalkan susunan sisipan yang menyebabkan lelaran menjadi lebih mahal.
Faktor Prestasi
Prestasi LinkedHashMap bergantung terutamanya pada dua faktor yang diterangkan di bawah.Kapasiti
Kapasiti bermaksud bilangan entri yang boleh disimpannya. Kapasiti lalai ialah 16 jika tiada parameter disediakan. Faktor beban Faktor beban bermaksud apabila HashMap diisikan kepada peratusan tertentu yang disediakan sebagai parameter, HashMap baharu dicipta yang bersaiz dua kali ganda, dan semua entri dipindahkan ke yang baharu ini. Faktor muatan lalai untuk HashMap ialah 0.75 . Ia juga dikenali sebagai nisbah isian .Pengisytiharan LinkedHashMap
Untuk mencipta LinkedHashMap , pertama, kita perlu mengimport pakej, iaitu java.util.LinkedHashMap .LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Di sini, Key ialah jenis kekunci dalam peta. Nilai ialah jenis nilai yang dipetakan dalam peta. 12 ialah kapasiti yang bermaksud ia akan menyimpan 12 entri dalam peta. 0.5f ialah faktor beban yang bermaksud apabila 50% diisi maka ia akan mencipta Peta baharu dan memindahkan semua nilai ke yang baharu ini.
Kaedah Biasa LinkedHashMap
Berikut ialah senarai beberapa kaedah biasa LinkedHashMap .Kaedah | Penerangan |
---|---|
jelas() | Mengalih keluar semua pemetaan dalam peta. |
containsValue(Nilai objek) | Mengembalikan benar jika peta memetakan kunci kepada nilai yang ditentukan. |
entrySet() | Mengembalikan paparan Tetapkan pemetaan dalam peta. |
dapatkan (kunci objek) | Mengembalikan nilai terhadap kunci yang ditentukan atau null jika tiada kunci ditentukan. |
keySet() | Mengembalikan paparan Tetapkan kekunci dalam peta. |
nilai() | Mengembalikan paparan Koleksi nilai dalam peta. |
getOrDefault(Kunci objek, V defaultValue) | Mengembalikan nilai yang dikaitkan dengan kunci yang ditentukan atau defaultValue jika tiada kunci dikaitkan. |
Contoh 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());
}
}
Pengeluaran
LinkedHashMap1: {One=1, Three=3} LinkedHashMap2: {Dua=2, One=1, Three=3} Pemetaan Kunci/Nilai: [Dua=2, Satu=1, Tiga=3] Kekunci: [Dua, Satu , Tiga] Nilai: [2, 1, 3] Nombor Dikembalikan: 3 Nombor Dikembalikan: 5 Nilai dialih keluar: 2 pemetaan Kunci/Nilai: [Satu=1, Tiga=3]
LinkedHashMap lwn HashMap
Mari lihat beberapa perbezaan antara mereka, manakala kedua-duanya melaksanakan antara muka Peta .- LinkedHashMap mengekalkan susunan sisipan kerana ia melaksanakan senarai pautan dua kali secara dalaman.
- LinkedHashMap memerlukan lebih banyak storan kerana ia melaksanakan LinkedList .
- Berkenaan prestasi, LinkedHashMap adalah lebih perlahan daripada HashMap .