logo

Java HashSet

Hierarchie tříd Java HashSet

Třída Java HashSet se používá k vytvoření kolekce, která používá k ukládání hash tabulku. Zdědí třídu AbstractSet a implementuje rozhraní Set.

Důležité body o třídě Java HashSet jsou:

  • HashSet ukládá prvky pomocí mechanismu zvaného hašování.
  • HashSet obsahuje pouze jedinečné prvky.
  • HashSet umožňuje hodnotu null.
  • Třída HashSet není synchronizovaná.
  • HashSet neuchovává objednávku vložení. Zde jsou prvky vkládány na základě jejich hashcode.
  • HashSet je nejlepší přístup k vyhledávacím operacím.
  • Počáteční výchozí kapacita HashSet je 16 a faktor zatížení je 0,75.

Rozdíl mezi List a Set

Seznam může obsahovat duplicitní prvky, zatímco sada obsahuje pouze jedinečné prvky.

Hierarchie třídy HashSet

Třída HashSet rozšiřuje třídu AbstractSet, která implementuje rozhraní Set. Rozhraní Set dědí rozhraní Collection a Iterable v hierarchickém pořadí.


Deklarace třídy HashSet

Podívejme se na deklaraci třídy java.util.HashSet.

pole struktur v jazyce c
 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Konstruktory třídy Java HashSet

SN Konstruktér Popis
1) HashSet() Používá se k vytvoření výchozí HashSet.
2) HashSet (kapacita int) Slouží k inicializaci kapacity hashové sady na danou kapacitu celočíselné hodnoty. Kapacita roste automaticky s přidáváním prvků do HashSet.
3) HashSet (kapacita int, plovoucí faktor zatížení) Slouží k inicializaci kapacity hashové sady na danou celočíselnou hodnotu kapacity a zadaný faktor zatížení.
4) HashSet (kolekce c) Používá se k inicializaci sady hash pomocí prvků kolekce c.

Metody třídy Java HashSet

Různé metody třídy Java HashSet jsou následující:

SN Modifikátor a typ Metoda Popis
1) booleovský přidat (E e) Používá se k přidání zadaného prvku do této sady, pokud ještě není přítomen.
2) prázdnota Průhledná() Používá se k odstranění všech prvků ze sady.
3) objekt klon() Používá se k vrácení mělké kopie této instance HashSet: samotné prvky nejsou klonovány.
4) booleovský obsahuje (Objekt o) Používá se k vrácení true, pokud tato sada obsahuje zadaný prvek.
5) booleovský je prázdný() Používá se k návratu true, pokud tato sada neobsahuje žádné prvky.
6) Iterátor iterátor() Používá se k vrácení iterátoru nad prvky v této sadě.
7) booleovský odstranit (objekt o) Používá se k odstranění zadaného prvku z této sady, pokud je přítomen.
8) int velikost() Slouží k vrácení počtu prvků v sadě.
9) Spliterátor rozdělovač() Používá se k vytvoření spliteratoru s pozdním vázáním a rychlého selhání nad prvky v sadě.

Příklad Java HashSet

Podívejme se na jednoduchý příklad HashSet. Všimněte si, že prvky se opakují v neuspořádané kolekci.

 import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Five One Four Two Three 

Příklad Java HashSet ignorující duplicitní prvky

V tomto příkladu vidíme, že HashSet neumožňuje duplicitní prvky.

 import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } } 
 Ajay Vijay Ravi 

Příklad Java HashSet pro odstranění prvků

Zde vidíme různé způsoby odstranění prvku.

cast int do string java
 import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } } 
 An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: [] 

Java HashSet z jiné kolekce

 import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } } 
 Vijay Ravi Gaurav Ajay 

Příklad Java HashSet: Kniha

Podívejme se na příklad HashSet, kde přidáváme knihy k nastavení a tiskneme všechny knihy.

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 

Výstup:

 101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6 

Mohlo by se vám také líbit:

Práce HashSet v Javě