java
Dalam tutorial ini, kita akan belajar tentang kelas Java LinkedHashSet dan metodenya dengan bantuan contoh.
LinkedHashSet
kelas kerangka koleksi Java menyediakan fungsionalitas dari struktur data hashtable dan daftar tertaut.
Ini mengimplementasikan antarmuka Set.
Elemen LinkedHashSet
disimpan dalam tabel hash yang mirip dengan HashSet.
Namun, kumpulan hash tertaut mempertahankan daftar tertaut ganda secara internal untuk semua elemennya. Daftar tertaut menentukan urutan elemen yang dimasukkan ke dalam tabel hash.
Untuk membuat kumpulan hash yang ditautkan, kita harus mengimpor java.util.LinkedHashSet
paket dulu.
Setelah kita mengimpor paket, berikut adalah bagaimana kita dapat membuat kumpulan hash tertaut di Java.
// LinkedHashSet with 8 capacity and 0.75 load factor
LinkedHashSet<Integer> numbers = new LinkedHashSet<>(8, 0.75);
Di sini, kami telah membuat kumpulan hash tertaut bernama angka .
Perhatikan, bagian new LinkedHashSet<>(8, 0.75)
. Di sini, parameter pertama adalah kapasitas dan parameter kedua adalah loadFactor .
Kapasitas default dan faktor beban
Anda dapat membuat kumpulan hash yang ditautkan tanpa menentukan kapasitas dan faktor bebannya. Misalnya,
// LinkedHashSet with default capacity and load factor
LinkedHashSet<Integer> numbers1 = new LinkedHashSet<>();
Secara default,
Berikut adalah cara membuat kumpulan hash tertaut yang berisi semua elemen koleksi lain.
import java.util.LinkedHashSet;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating an arrayList of even numbers
ArrayList<Integer> evenNumbers = new ArrayList<>();
evenNumbers.add(2);
evenNumbers.add(4);
System.out.println("ArrayList: " + evenNumbers);
// Creating a LinkedHashSet from an ArrayList
LinkedHashSet<Integer> numbers = new LinkedHashSet<>(evenNumbers);
System.out.println("LinkedHashSet: " + numbers);
}
}
Keluaran
ArrayList: [2, 4] LinkedHashSet: [2, 4]
LinkedHashSet
class menyediakan metode yang memungkinkan kita melakukan berbagai operasi pada hash set yang ditautkan.
add()
- menyisipkan elemen yang ditentukan ke kumpulan hash yang ditautkanaddAll()
- menyisipkan semua elemen dari koleksi yang ditentukan ke kumpulan hash yang ditautkanMisalnya,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> evenNumber = new LinkedHashSet<>();
// Using add() method
evenNumber.add(2);
evenNumber.add(4);
evenNumber.add(6);
System.out.println("LinkedHashSet: " + evenNumber);
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
// Using addAll() method
numbers.addAll(evenNumber);
numbers.add(5);
System.out.println("New LinkedHashSet: " + numbers);
}
}
Keluaran
LinkedHashSet: [2, 4, 6] New LinkedHashSet: [2, 4, 6, 5]
Untuk mengakses elemen dari kumpulan hash yang ditautkan, kita dapat menggunakan iterator()
metode. Untuk menggunakan metode ini, kita harus mengimpor java.util.Iterator
kemasan. Misalnya,
import java.util.LinkedHashSet;
import java.util.Iterator;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(2);
numbers.add(5);
numbers.add(6);
System.out.println("LinkedHashSet: " + numbers);
// Calling the iterator() method
Iterator<Integer> iterate = numbers.iterator();
System.out.print("LinkedHashSet using Iterator: ");
// Accessing elements
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
Keluaran
LinkedHashSet: [2, 5, 6] LinkedHashSet using Iterator: 2, 5, 6,
Catatan :
hasNext()
mengembalikan true
jika ada elemen berikutnya dalam kumpulan hash yang ditautkannext()
mengembalikan elemen berikutnya dalam kumpulan hash yang ditautkanremove()
- menghapus elemen tertentu dari kumpulan hash yang ditautkanremoveAll()
- menghapus semua elemen dari kumpulan hash yang ditautkanMisalnya,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(2);
numbers.add(5);
numbers.add(6);
System.out.println("LinkedHashSet: " + numbers);
// Using the remove() method
boolean value1 = numbers.remove(5);
System.out.println("Is 5 removed? " + value1);
boolean value2 = numbers.removeAll(numbers);
System.out.println("Are all elements removed? " + value2);
}
}
Keluaran
LinkedHashSet: [2, 5, 6] Is 5 removed? true Are all elements removed? true
Berbagai metode LinkedHashSet
class juga dapat digunakan untuk melakukan berbagai operasi himpunan.
Dua melakukan penyatuan antara dua set, kita dapat menggunakan addAll()
metode. Misalnya,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>();
evenNumbers.add(2);
evenNumbers.add(4);
System.out.println("LinkedHashSet1: " + evenNumbers);
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(1);
numbers.add(3);
System.out.println("LinkedHashSet2: " + numbers);
// Union of two set
numbers.addAll(evenNumbers);
System.out.println("Union is: " + numbers);
}
}
Keluaran
LinkedHashSet1: [2, 4] LinkedHashSet2: [1, 3] Union is: [1, 3, 2, 4]
Untuk melakukan perpotongan antara dua himpunan, kita dapat menggunakan retainAll()
metode. Misalnya
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("LinkedHashSet1: " + primeNumbers);
LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>();
evenNumbers.add(2);
evenNumbers.add(4);
System.out.println("LinkedHashSet2: " + evenNumbers);
// Intersection of two sets
evenNumbers.retainAll(primeNumbers);
System.out.println("Intersection is: " + evenNumbers);
}
}
Keluaran
LinkedHashSet1: [2, 3] LinkedHashSet2: [2, 4] Intersection is: [2]
Untuk menghitung selisih antara kedua himpunan, kita dapat menggunakan removeAll()
metode. Misalnya,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("LinkedHashSet1: " + primeNumbers);
LinkedHashSet<Integer> oddNumbers = new LinkedHashSet<>();
oddNumbers.add(1);
oddNumbers.add(3);
oddNumbers.add(5);
System.out.println("LinkedHashSet2: " + oddNumbers);
// Difference between LinkedHashSet1 and LinkedHashSet2
primeNumbers.removeAll(oddNumbers);
System.out.println("Difference : " + primeNumbers);
}
}
Keluaran
LinkedHashSet1: [2, 3, 5] LinkedHashSet2: [1, 3, 5] Difference: [2]
Untuk memeriksa apakah suatu himpunan merupakan himpunan bagian dari himpunan lain atau bukan, kita dapat menggunakan containsAll()
metode. Misalnya,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
System.out.println("LinkedHashSet1: " + numbers);
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("LinkedHashSet2: " + primeNumbers);
// Check if primeNumbers is a subset of numbers
boolean result = numbers.containsAll(primeNumbers);
System.out.println("Is LinkedHashSet2 is subset of LinkedHashSet1? " + result);
}
}
Keluaran
LinkedHashSet1: [1, 2, 3, 4] LinkedHashSet2: [2, 3] Is LinkedHashSet2 is a subset of LinkedHashSet1? true
Metode | Deskripsi |
---|---|
clone() | Membuat salinan LinkedHashSet |
contains() | Menelusuri LinkedHashSet untuk elemen yang ditentukan dan mengembalikan hasil boolean |
isEmpty() | Memeriksa apakah LinkedHashSet kosong |
size() | Mengembalikan ukuran LinkedHashSet |
clear() | Menghapus semua elemen dari LinkedHashSet |
Untuk mempelajari lebih lanjut tentang LinkedHashSet
metode, kunjungi Java LinkedHashSet (dokumentasi resmi Java).
Keduanya LinkedHashSet
dan HashSet
mengimplementasikan Set
antarmuka. Namun, ada beberapa perbedaan di antara mereka.
LinkedHashSet
memelihara daftar tertaut secara internal. Karena itu, ia mempertahankan urutan penyisipan elemen-elemennya.LinkedHashSet
kelas membutuhkan lebih banyak penyimpanan daripada HashSet
. Ini karena LinkedHashSet
memelihara daftar tertaut secara internal.LinkedHashSet
lebih lambat dari HashSet
. Itu karena daftar tertaut yang ada di LinkedHashSet
.
Berikut adalah perbedaan utama antara LinkedHashSet
dan TreeSet
:
TreeSet
kelas mengimplementasikan SortedSet
antarmuka. Itu sebabnya elemen dalam kumpulan pohon diurutkan. Namun, LinkedHashSet
class hanya mempertahankan urutan penyisipan elemennya.TreeSet
biasanya lebih lambat dari LinkedHashSet
. Itu karena setiap kali sebuah elemen ditambahkan ke TreeSet
, itu harus melakukan operasi penyortiran.LinkedHashSet
memungkinkan penyisipan nilai nol. Namun, kami tidak dapat memasukkan nilai nol ke TreeSet
. java
Antarmuka Deque Java Dalam tutorial ini, kita akan belajar tentang antarmuka Deque, cara menggunakannya, dan metodenya. Deque antarmuka kerangka koleksi Java menyediakan fungsionalitas antrian berujung ganda. Ini memperluas Queue antarmuka. Kerja Deque Dalam antrian biasa, elemen ditambahkan dar
Java LinkedList Dalam tutorial ini, kita akan belajar tentang Java LinkedList secara detail dengan bantuan contoh. LinkedList kelas kerangka koleksi Java menyediakan fungsionalitas struktur data daftar tertaut (daftar tertaut ganda). Setiap elemen dalam daftar tertaut dikenal sebagai simpul . In
Java ArrayDeque Dalam tutorial ini, kita akan belajar tentang kelas ArrayDeque dan metodenya dengan bantuan contoh. Selain itu, kita akan belajar menggunakan deque array untuk mengimplementasikan tumpukan. Di Java, kita bisa menggunakan ArrayDeque class untuk mengimplementasikan struktur data antr
Java LinkedHashSet Dalam tutorial ini, kita akan belajar tentang kelas Java LinkedHashSet dan metodenya dengan bantuan contoh. LinkedHashSet kelas kerangka koleksi Java menyediakan fungsionalitas dari struktur data hashtable dan daftar tertaut. Ini mengimplementasikan antarmuka Set. Elemen Lin