Menguasai Antarmuka Set Java: Konsep, Metode, dan Contoh Praktis
Menguasai Antarmuka Set Java
Temukan bagaimana antarmuka Set Java menghilangkan duplikat, metodenya kunci, dan penggunaan dalam dunia nyata di HashSet, TreeSet, dan lainnya.
Antarmuka Set dalam Java Collections Framework memodelkan himpunan matematika: koleksi yang tidak pernah menyimpan elemen duplikat. Ia memperluas antarmuka Collection, mewarisi semua operasi standarnya sambil menambahkan beberapa utilitas spesifik set.
Kelas yang Mengimplementasikan Set
Karena Set adalah antarmuka, kita membuat instance implementasi konkret untuk bekerja dengannya:
- HashSet – tidak berurutan, performa tinggi, menggunakan hashing.
- LinkedHashSet – mempertahankan urutan penyisipan.
- EnumSet – set khusus untuk tipe enum, sangat cepat.
- TreeSet – urutan terurut berdasarkan urutan alami atau komparator.
Kelas ini berada di paket java.util dan semua memenuhi kontrak Set.
Subantarmuka Set
Antarmuka Set diperluas lebih lanjut oleh:
- SortedSet – menambahkan metode untuk menavigasi set yang diurutkan.
- NavigableSet – memperluas SortedSet dengan metode navigasi tingkat lebih tinggi.
Menggunakan Set dalam Kode
Untuk menggunakan set, impor java.util.Set dan pilih implementasi:
import java.util.Set; import java.util.HashSet; Set<String> animals = new HashSet<>();
Di sini animals adalah Set string, yang didukung oleh HashSet. Pemilihan implementasi tergantung pada kebutuhan urutan, performa, dan kasus penggunaan.
Metode Inti Set
Antarmuka Set mewarisi semua metode Collection dan menambahkan yang berikut yang sering digunakan:
- add(element) – menyisipkan elemen jika belum ada.
- addAll(collection) – menambahkan massal elemen dari koleksi lain.
- iterator() – menyediakan iterator berurutan.
- remove(element) – menghapus elemen tertentu.
- removeAll(collection) – menghapus semua elemen yang muncul dalam koleksi yang ditentukan.
- retainAll(collection) – hanya mempertahankan elemen yang juga ada dalam koleksi yang ditentukan.
- clear() – mengkosongkan set.
- size() – mengembalikan jumlah elemen.
- toArray() – mengonversi set ke array.
- contains(element) – memeriksa keanggotaan.
- containsAll(collection) – memverifikasi bahwa semua elemen dari koleksi yang diberikan ada.
- hashCode() – menghasilkan kode hash untuk set.
Untuk referensi lengkap, konsultasikan dokumentasi Set Java resmi.
Operasi Set
Set Java mendukung operasi matematika klasik melalui metode yang sederhana:
- Gabungan –
x.addAll(y) menggabungkan dua set. - Irisan –
x.retainAll(y) hanya mempertahankan elemen yang sama. - Subset –
y.containsAll(x) memeriksa apakah x adalah subset dari y.
Contoh Implementasi Praktis
1. Menggunakan HashSet
import java.util.Set; import java.util.HashSet; public class HashSetDemo { public static void main(String[] args) { Set<Integer> set1 = new HashSet<>(); set1.add(2); set1.add(3); System.out.println("Set1: " + set1); Set<Integer> set2 = new HashSet<>(); set2.add(1); set2.add(2); System.out.println("Set2: " + set2); set2.addAll(set1); // Gabungan System.out.println("Gabungan adalah: " + set2); } }
Output
Set1: [2, 3] Set2: [1, 2] Gabungan adalah: [1, 2, 3]
Jelajahi lebih lanjut di Java HashSet.
2. Menggunakan TreeSet
import java.util.Set; import java.util.TreeSet; import java.util.Iterator; public class TreeSetDemo { public static void main(String[] args) { Set<Integer> numbers = new TreeSet<>(); numbers.add(2); numbers.add(3); numbers.add(1); System.out.println("Set menggunakan TreeSet: " + numbers); System.out.print("Mengakses elemen menggunakan iterator(): "); Iterator<Integer> it = numbers.iterator(); while (it.hasNext()) { System.out.print(it.next() + ", "); } } }
Output
Set menggunakan TreeSet: [1, 2, 3] Mengakses elemen menggunakan iterator(): 1, 2, 3,
Untuk wawasan lebih dalam, kunjungi Java TreeSet.
Contoh ini menggambarkan cara memanfaatkan kekuatan antarmuka Set dalam aplikasi nyata. Selanjutnya, kita akan menjelajahi implementasi lain seperti EnumSet dan LinkedHashSet dalam tutorial terpisah.