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

Kelas HashSet Java

Kelas HashSet Java

Dalam tutorial ini, kita akan belajar tentang kelas Java HashSet. Kita akan belajar tentang metode dan operasi set hash yang berbeda dengan bantuan contoh.

HashSet class framework Java Collections menyediakan fungsionalitas struktur data tabel hash.

Ini mengimplementasikan antarmuka Set.


Membuat HashSet

Untuk membuat hash set, kita harus mengimpor java.util.HashSet paket dulu.

Setelah kita mengimpor paket, berikut adalah cara membuat hash set di Java.

// HashSet with 8 capacity and 0.75 load factor
HashSet<Integer> numbers = new HashSet<>(8, 0.75);

Di sini, kami telah membuat set hash bernama numbers .

Perhatikan, bagian baru HashSet<>(8, 0.75) . Di sini, parameter pertama adalah kapasitas , dan parameter kedua adalah loadFactor .

Kapasitas default dan faktor beban

Dimungkinkan untuk membuat tabel hash tanpa menentukan kapasitas dan faktor bebannya. Misalnya,

// HashSet with default capacity and load factor
HashSet<Integer> numbers1 = new HashSet<>();

Secara default,


Metode HashSet

HashSet class menyediakan berbagai metode yang memungkinkan kita untuk melakukan berbagai operasi di set.


Sisipkan Elemen ke HashSet

Misalnya,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumber = new HashSet<>();

        // Using add() method
        evenNumber.add(2);
        evenNumber.add(4);
        evenNumber.add(6);
        System.out.println("HashSet: " + evenNumber);

        HashSet<Integer> numbers = new HashSet<>();
        
        // Using addAll() method
        numbers.addAll(evenNumber);
        numbers.add(5);
        System.out.println("New HashSet: " + numbers);
    }
}

Keluaran

HashSet: [2, 4, 6]
New HashSet: [2, 4, 5, 6]

Akses Elemen HashSet

Untuk mengakses elemen dari hash set, kita dapat menggunakan iterator() metode. Untuk menggunakan metode ini, kita harus mengimpor java.util.Iterator kemasan. Misalnya,

import java.util.HashSet;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        // Calling iterator() method
        Iterator<Integer> iterate = numbers.iterator();
        System.out.print("HashSet using Iterator: ");
        // Accessing elements
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

Keluaran

HashSet: [2, 5, 6]
HashSet using Iterator: 2, 5, 6,

Hapus Elemen

Misalnya,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        // Using 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

HashSet: [2, 5, 6]
Is 5 removed? true
Are all elements removed? true

Setel Operasi

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


Kesatuan Himpunan

Untuk melakukan penyatuan antara dua set, kita dapat menggunakan addAll() metode. Misalnya,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("HashSet1: " + evenNumbers);

        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(3);
        System.out.println("HashSet2: " + numbers);

        // Union of two set
        numbers.addAll(evenNumbers);
        System.out.println("Union is: " + numbers);
    }
}

Keluaran

HashSet1: [2, 4]
HashSet2: [1, 3]
Union is: [1, 2, 3, 4]

Perpotongan Himpunan

Untuk melakukan perpotongan antara dua himpunan, kita dapat menggunakan retainAll() metode. Misalnya

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet1: " + primeNumbers);

        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("HashSet2: " + evenNumbers);

        // Intersection of two sets
        evenNumbers.retainAll(primeNumbers);
        System.out.println("Intersection is: " + evenNumbers);
    }
}

Keluaran

HashSet1: [2, 3]
HashSet2: [2, 4]
Intersection is: [2]

Perbedaan Himpunan

Untuk menghitung selisih antara kedua himpunan, kita dapat menggunakan removeAll() metode. Misalnya,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);
        System.out.println("HashSet1: " + primeNumbers);

        HashSet<Integer> oddNumbers = new HashSet<>();
        oddNumbers.add(1);
        oddNumbers.add(3);
        oddNumbers.add(5);
        System.out.println("HashSet2: " + oddNumbers);

        // Difference between HashSet1 and HashSet2
        primeNumbers.removeAll(oddNumbers);
        System.out.println("Difference : " + primeNumbers);
    }
}

Keluaran

HashSet1: [2, 3, 5]
HashSet2: [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.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        System.out.println("HashSet1: " + numbers);

        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet2: " + primeNumbers);

        // Check if primeNumbers is a subset of numbers
        boolean result = numbers.containsAll(primeNumbers);
        System.out.println("Is HashSet2 is subset of HashSet1? " + result);
    }
}

Keluaran

HashSet1: [1, 2, 3, 4]
HashSet2: [2, 3]
Is HashSet2 is a subset of HashSet1? true

Metode HashSet Lainnya

Metode Deskripsi
clone() Membuat salinan HashSet
contains() Menelusuri HashSet untuk elemen yang ditentukan dan mengembalikan hasil boolean
isEmpty() Memeriksa apakah HashSet kosong
size() Mengembalikan ukuran HashSet
clear() Menghapus semua elemen dari HashSet

Untuk mempelajari lebih lanjut tentang metode HashSet, kunjungi Java HashSet (dokumentasi resmi Java).


Mengapa HashSet?

Di Jawa, HashSet biasanya digunakan jika kita harus mengakses elemen secara acak. Itu karena elemen dalam tabel hash diakses menggunakan kode hash.

Kode hash suatu elemen adalah identitas unik yang membantu mengidentifikasi elemen dalam tabel hash.

HashSet tidak boleh mengandung elemen duplikat. Oleh karena itu, setiap elemen kumpulan hash memiliki kode hash yang unik.

Catatan: HashSet tidak disinkronkan. Yaitu jika beberapa utas mengakses kumpulan hash pada saat yang sama dan salah satu utas memodifikasi kumpulan hash. Maka itu harus disinkronkan secara eksternal.


java

  1. Kata kunci terakhir Java
  2. Instance Java dari Operator
  3. Kelas Statis Bersarang Java
  4. Kelas Anonim Java
  5. Kelas Tunggal Jawa
  6. Refleksi Jawa
  7. Algoritma Java
  8. Kelas Java ObjectOutputStream
  9. Java Generik
  10. Kelas File Java