Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Java LinkedHashSet

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 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.


Buat LinkedHashSet

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,


Membuat LinkedHashSet dari Koleksi Lain

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]

Metode LinkedHashSet

LinkedHashSet class menyediakan metode yang memungkinkan kita melakukan berbagai operasi pada hash set yang ditautkan.


Sisipkan Elemen ke LinkedHashSet

Misalnya,

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]

Mengakses Elemen LinkedHashSet

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 :


Hapus Elemen dari HashSet

Misalnya,

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

Setel Operasi

Berbagai metode LinkedHashSet class juga dapat digunakan untuk melakukan berbagai operasi himpunan.


Kesatuan 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]

Perpotongan Himpunan

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]

Perbedaan Himpunan

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]

Subset

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 LinkedHashSet Lainnya

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).


LinkedHashSet Vs. HashSet

Keduanya LinkedHashSet dan HashSet mengimplementasikan Set antarmuka. Namun, ada beberapa perbedaan di antara mereka.



LinkedHashSet Vs. TreeSet

Berikut adalah perbedaan utama antara LinkedHashSet dan TreeSet :


java

  1. Operator Jawa
  2. Komentar Jawa
  3. Java untuk setiap Loop
  4. String Jawa
  5. Antarmuka Jawa
  6. Kelas Anonim Java
  7. Java mencoba-dengan-sumber daya
  8. Anotasi Jawa
  9. Pernyataan Jawa
  10. Vektor Jawa