logo

Zestaw skrótów Java

Hierarchia klas Java HashSet

Klasa Java HashSet służy do tworzenia kolekcji korzystającej z tablicy mieszającej do przechowywania. Dziedziczy klasę AbstractSet i implementuje interfejs Set.

Ważne punkty dotyczące klasy Java HashSet to:

  • HashSet przechowuje elementy za pomocą mechanizmu zwanego haszowanie.
  • HashSet zawiera tylko unikalne elementy.
  • HashSet dopuszcza wartość null.
  • Klasa HashSet nie jest zsynchronizowana.
  • HashSet nie utrzymuje kolejności wstawiania. Tutaj elementy są wstawiane na podstawie ich kodu skrótu.
  • HashSet to najlepsze podejście do operacji wyszukiwania.
  • Początkowa domyślna pojemność HashSet wynosi 16, a współczynnik obciążenia wynosi 0,75.

Różnica między listą a zestawem

Lista może zawierać zduplikowane elementy, podczas gdy Zestaw zawiera tylko unikalne elementy.

Hierarchia klasy HashSet

Klasa HashSet stanowi rozwinięcie klasy AbstractSet, która implementuje interfejs Set. Interfejs Set dziedziczy interfejsy Collection i Iterable w kolejności hierarchicznej.


Deklaracja klasy HashSet

Zobaczmy deklarację klasy java.util.HashSet.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Konstruktory klasy Java HashSet

SN Konstruktor Opis
1) HashSet() Służy do konstruowania domyślnego zestawu HashSet.
2) HashSet (int pojemność) Służy do inicjowania pojemności zestawu skrótów do podanej wartości całkowitej. Pojemność rośnie automatycznie w miarę dodawania elementów do HashSet.
3) HashSet (pojemność int, współczynnik obciążenia float) Służy do inicjowania pojemności zestawu skrótów na podaną wartość całkowitą pojemność i określony współczynnik obciążenia.
4) HashSet (kolekcja c) Służy do inicjowania zestawu skrótów przy użyciu elementów kolekcji c.

Metody klasy Java HashSet

Różne metody klasy Java HashSet są następujące:

SN Modyfikator i typ metoda Opis
1) wartość logiczna dodać (E e) Służy do dodania określonego elementu do tego zestawu, jeśli jeszcze go nie ma.
2) próżnia jasne() Służy do usuwania wszystkich elementów ze zbioru.
3) obiekt klon() Służy do zwracania płytkiej kopii tej instancji HashSet: same elementy nie są klonowane.
4) wartość logiczna zawiera (obiekt o) Służy do zwracania prawdy, jeśli ten zestaw zawiera określony element.
5) wartość logiczna jest pusty() Służy do zwracania prawdy, jeśli ten zestaw nie zawiera żadnych elementów.
6) Iterator iterator() Służy do zwracania iteratora po elementach w tym zestawie.
7) wartość logiczna usuń(obiekt o) Służy do usunięcia określonego elementu z tego zestawu, jeśli jest obecny.
8) wew rozmiar() Służy do zwracania liczby elementów w zestawie.
9) Rozdzielacz rozdzielacz() Służy do tworzenia późnego wiązania i niezawodnego Spliteratora dla elementów w zestawie.

Przykład zestawu skrótów Java

Zobaczmy prosty przykład HashSet. Zauważ, że elementy wykonują iterację w nieuporządkowanej kolekcji.

 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 

Przykład Java HashSet ignorujący zduplikowane elementy

W tym przykładzie widzimy, że HashSet nie pozwala na duplikowanie elementów.

 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 

Przykład Java HashSet do usuwania elementów

Tutaj widzimy różne sposoby usuwania elementu.

 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 innej kolekcji

 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 

Przykład Java HashSet: Book

Zobaczmy przykład HashSet, w którym dodajemy książki, aby ustawić i wydrukować wszystkie książki.

 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); } } } 

Wyjście:

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

Może Ci się spodobać:

Działanie HashSet w Javie