Apa itu LinkedHashMap di Jawa?
Kelas LinkedHashMap dari kerangka Koleksi adalah implementasi Hashtable dan LinkedList dari antarmuka Peta . Ia menyimpan entri-entrinya dalam Hashtable dan menggunakan daftar tertaut ganda secara internal untuk mempertahankan urutan penyisipan. LinkedList ini mendefinisikan urutan penyisipan yang merupakan urutan kunci dimasukkan ke dalam Map . HashMap memberikan manfaat penyisipan , pencarian , dan penghapusan cepat tetapi di LinkedHashMap penerapan LinkedList juga mempertahankan urutan penyisipan.Fitur LinkedHashMap
- Ini berisi nilai berdasarkan kunci.
- Ini mengandung elemen unik.
- Ini mungkin memiliki satu kunci nol dan beberapa nilai nol.
- Itu tidak disinkronkan.
- Ini mempertahankan urutan penyisipan yang menyebabkan iterasi menjadi lebih mahal.
Faktor Kinerja
Kinerja LinkedHashMap terutama bergantung pada dua faktor yang dijelaskan di bawah ini.Kapasitas
Kapasitas berarti jumlah entri yang dapat disimpan. Kapasitas default adalah 16 jika tidak ada parameter yang disediakan. Faktor beban Faktor beban berarti setiap kali HashMap diisi dengan persentase tertentu yang disediakan sebagai parameter, HashMap baru dibuat dengan ukuran ganda, dan semua entri dipindahkan ke yang baru ini. Faktor beban default untuk HashMap adalah 0.75 . Hal ini juga dikenal sebagai rasio pengisian .Deklarasi LinkedHashMap
Untuk membuat LinkedHashMap , pertama-tama kita perlu mengimpor paketnya, yaitu java.util.LinkedHashMap .LinkedHashMap<Key, Value> lhm = new LinkedHashMap<>(12, 0.5f);
Di sini, Kunci adalah jenis kunci di peta. Nilai adalah jenis nilai yang dipetakan dalam peta. 12 adalah kapasitas yang berarti akan menyimpan 12 entri di peta. 0,5f adalah faktor beban yang berarti ketika 50% terisi maka akan membuat Peta baru dan memindahkan semua nilai ke peta baru ini.
Metode Umum LinkedHashMap
Berikut adalah daftar beberapa metode umum LinkedHashMap .Metode | Keterangan |
---|---|
jernih() | Menghapus semua pemetaan di peta. |
berisiNilai(Nilai objek) | Mengembalikan nilai benar jika peta memetakan kunci ke nilai yang ditentukan. |
entriSet() | Mengembalikan tampilan Set dari pemetaan di peta. |
dapatkan (kunci objek) | Mengembalikan nilai terhadap kunci yang ditentukan atau null jika tidak ada kunci yang ditentukan. |
set kunci() | Mengembalikan tampilan Set tombol di peta. |
nilai() | Mengembalikan tampilan Koleksi dari nilai-nilai di peta. |
getOrDefault(Kunci objek, V defaultValue) | Mengembalikan nilai yang dikaitkan dengan kunci tertentu atau defaultValue jika tidak ada kunci yang 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());
}
}
Keluaran
LinkedHashMap1: {Satu=1, Tiga=3} LinkedHashMap2: {Dua=2, Satu=1, Tiga=3} Pemetaan kunci/Nilai: [Dua=2, Satu=1, Tiga=3] Kunci: [Dua, Satu , Tiga] Nilai: [2, 1, 3] Nomor yang Dikembalikan: 3 Nomor yang Dikembalikan: 5 Nilai yang dihapus: 2 Pemetaan Kunci/Nilai: [Satu=1, Tiga=3]
LinkedHashMap vs HashMap
Mari kita lihat beberapa perbedaan di antara keduanya, sedangkan keduanya mengimplementasikan antarmuka Peta .- LinkedHashMap mempertahankan urutan penyisipan saat mengimplementasikan daftar tertaut ganda secara internal.
- LinkedHashMap memerlukan lebih banyak penyimpanan karena mengimplementasikan LinkedList .
- Mengenai kinerja, LinkedHashMap lebih lambat dari HashMap .
GO TO FULL VERSION