Kelas LinkedHashMap Java: Panduan Ramah untuk Pemula

Pengenalan

Halo di sini, ahli penyihir Java masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke dunia LinkedHashMap. Jangan khawatir jika anda belum pernah menulis satu baris kod sebelum ini – saya akan menjadi pemandu ramah anda, dan kita akan menjelajahi topik ini bersama-sama langkah demi langkah. Pada akhir tutorial ini, anda akan kagum dengan berapa banyak yang anda telah pelajari!

Java - LinkedHashMap

LinkedHashMap adalah seperti rak penyimpanan yang penyihir yang dapat menyimpan item anda (kami menyebut mereka pasangan kunci-nilai di dalam pemrograman) dalam urutan tertentu. Bayangkan anda mengatur buku kesukaan anda di atas rak. Bukan hanya anda dapat dengan cepat menemukan buku mana pun yang anda inginkan, tetapi anda juga dapat menjaganya dalam urutan yang anda tambahkan atau berdasarkan seberapa sering anda membacanya. Itulah yang dilakukan LinkedHashMap untuk data kita!

Deklarasi Kelas

Mari kita mulai dengan cara mendeklarasikan LinkedHashMap di Java:

import java.util.LinkedHashMap;

public class MyLinkedHashMapExample {
public static void main(String[] args) {
LinkedHashMap<String, Integer> myBookshelf = new LinkedHashMap<>();
}
}

Dalam contoh ini, kita membuat LinkedHashMap yang dipanggil myBookshelf. Bagian <String, Integer> memberitahu Java bahwa kita akan menggunakan String sebagai kunci (judul buku) dan Integer sebagai nilai (mungkin jumlah halaman). Jangan khawatir jika ini terlihat membingungkan sekarang – kita akan membahas lebih lanjut tentang ini saat kita maju!

Parameter

Saat bekerja dengan LinkedHashMap, kita memiliki beberapa parameter untuk dipertimbangkan:

  1. initialCapacity: Ini seperti menentukan berapa besar rak buku anda harusnya adalah pada awalnya.
  2. loadFactor: Pikirkan tentang ini sebagai berapa penuh rak buku anda dapat menjadi sebelum anda perlu rak yang lebih besar.
  3. accessOrder: Ini menentukan apakah buku anda diatur berdasarkan waktu anda menambahkannya atau berapa sering anda mengakses mereka.

Lihat contoh ini:

LinkedHashMap<String, Integer> myBookshelf = new LinkedHashMap<>(16, 0.75f, true);

Di sini, kita mengatakan rak buku awal kita dapat menyimpan 16 buku, kita akan mempertimbangkan untuk mendapatkan rak yang lebih besar saat itu 75% penuh, dan kita ingin mengatur buku berdasarkan berapa sering kita mengakses mereka.

Konstruktor Kelas

LinkedHashMap menawarkan beberapa cara untuk membuat rak penyimpanan penyihir kita. Berikut adalah konstruktor utama:

  1. LinkedHashMap(): Membuat LinkedHashMap kosong dengan pengaturan default.
  2. LinkedHashMap(int initialCapacity): Menentukan kapasitas awal.
  3. LinkedHashMap(int initialCapacity, float loadFactor): Menentukan kapasitas awal dan faktor beban.
  4. LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder): Menentukan semua tiga parameter.
  5. LinkedHashMap(Map<? extends K, ? extends V> m): Membuat LinkedHashMap dengan pemetaan yang sama seperti peta yang ditentukan.

Mari kita coba membuat LinkedHashMap menggunakan konstruktor yang berbeda:

LinkedHashMap<String, Integer> shelf1 = new LinkedHashMap<>();
LinkedHashMap<String, Integer> shelf2 = new LinkedHashMap<>(20);
LinkedHashMap<String, Integer> shelf3 = new LinkedHashMap<>(20, 0.8f);
LinkedHashMap<String, Integer> shelf4 = new LinkedHashMap<>(20, 0.8f, true);

Map<String, Integer> existingMap = new HashMap<>();
existingMap.put("Java Basics", 200);
LinkedHashMap<String, Integer> shelf5 = new LinkedHashMap<>(existingMap);

Masing-masing dari ini membuat "rak buku" yang sedikit berbeda berdasarkan kebutuhan kita. Adakah itu yang luar biasa bagaimana Java itu fleksibel?

Metode Kelas

Sekarang, mari kita lihat beberapa metode yang paling sering digunakan di LinkedHashMap. Saya akan menyajikannya dalam format tabel untuk referensi yang mudah:

Metode Deskripsi
put(K key, V value) Menambahkan pasangan kunci-nilai baru ke LinkedHashMap
get(Object key) Mengambil nilai yang terhubung dengan kunci yang ditentukan
remove(Object key) Menghapus pemetaan untuk kunci yang ditentukan
clear() Menghapus semua pemetaan dari LinkedHashMap
size() Mengembalikan jumlah pasangan kunci-nilai di LinkedHashMap
isEmpty() Mengembalikan true jika LinkedHashMap kosong
containsKey(Object key) Mengembalikan true jika LinkedHashMap mengandung kunci yang ditentukan
containsValue(Object value) Mengembalikan true jika LinkedHashMap mengandung nilai yang ditentukan
keySet() Mengembalikan Set semua kunci di LinkedHashMap
values() Mengembalikan Koleksi semua nilai di LinkedHashMap
entrySet() Mengembalikan Set semua pasangan kunci-nilai di LinkedHashMap

Lihat beberapa dari metode ini dalam aksi:

LinkedHashMap<String, Integer> myBookshelf = new LinkedHashMap<>();

// Menambahkan buku ke rak kita
myBookshelf.put("Java Basics", 200);
myBookshelf.put("Data Structures", 350);
myBookshelf.put("Algorithms", 400);

// Mendapatkan jumlah halaman untuk "Java Basics"
int javaPages = myBookshelf.get("Java Basics");
System.out.println("Java Basics memiliki " + javaPages + " halaman.");

// Memeriksa jika kita memiliki buku tentang Python
boolean hasPython = myBookshelf.containsKey("Python for Beginners");
System.out.println("Apakah kita memiliki buku Python? " + hasPython);

// Menghapus buku Algorithms
myBookshelf.remove("Algorithms");

// Mencetak semua judul buku
for (String title : myBookshelf.keySet()) {
System.out.println("Judul buku: " + title);
}

Fragment kode ini menunjukkan bagaimana kita dapat menambahkan buku ke rak kita, mengambil informasi tentang mereka, memeriksa jika kita memiliki buku tertentu, menghapus buku, dan daftar semua buku yang kita miliki. Lumayan yah?

Metode Yang Diketuruni

LinkedHashMap juga mengikuti metode dari kelas induknya. Berikut adalah beberapa yang penting:

Diketuruni Dari Metode
HashMap clone(), compute(), computeIfAbsent(), computeIfPresent(), merge()
AbstractMap equals(), hashCode(), toString()
Object finalize(), getClass(), notify(), notifyAll(), wait()

Metode yang diketuruni ini menyediakan fungsi tambahan yang dapat sangat berguna dalam beberapa situasi.

Contoh Mendapatkan Nilai dari LinkedHashMap

Mari kita tutup dengan contoh lengkap membuat LinkedHashMap, menambahkan beberapa nilai, dan mengambil mereka:

import java.util.LinkedHashMap;

public class BookshelfExample {
public static void main(String[] args) {
LinkedHashMap<String, Integer> myBookshelf = new LinkedHashMap<>();

// Menambahkan buku ke rak kita
myBookshelf.put("Java Basics", 200);
myBookshelf.put("Data Structures", 350);
myBookshelf.put("Algorithms", 400);

// Mengambil dan mencetak informasi tentang setiap buku
for (String title : myBookshelf.keySet()) {
int pages = myBookshelf.get(title);
System.out.println("Buku '" + title + "' memiliki " + pages + " halaman.");
}

// Mendapatkan buku spesifik
String bookToFind = "Data Structures";
if (myBookshelf.containsKey(bookToFind)) {
int pages = myBookshelf.get(bookToFind);
System.out.println("\nDitemukan! '" + bookToFind + "' memiliki " + pages + " halaman.");
} else {
System.out.println("\nMaaf, kita tidak memiliki '" + bookToFind + "' di atas rak kita.");
}
}
}

Output

Saat anda menjalankan kode ini, anda akan melihat output seperti ini:

Buku 'Java Basics' memiliki 200 halaman.
Buku 'Data Structures' memiliki 350 halaman.
Buku 'Algorithms' memiliki 400 halaman.

Ditemukan! 'Data Structures' memiliki 350 halaman.

Dan itu adalah! Anda baru saja membuat rak penyimpanan digital anda sendiri menggunakan LinkedHashMap. Anda dapat menambahkan buku, menemukan berapa banyak halaman mereka memiliki, dan bahkan memeriksa jika buku tertentu ada di rak anda. Bukan programming itu menakjubkan?

Ingat, seperti mengatur rak buku yang sebenarnya, semakin banyak anda latihan menggunakan LinkedHashMap, semakin nyaman anda akan menjadi dengannya. Jangan takut untuk bereksperimen dan mencoba hal yang berbeda. Happy coding, pemula Java masa depan!

Credits: Image by storyset