Java HashSet

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.

 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.

 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ě