logo

Java HashSet

Ієрархія класів Java HashSet

Клас Java HashSet використовується для створення колекції, яка використовує хеш-таблицю для зберігання. Він успадковує клас AbstractSet і реалізує інтерфейс Set.

Важливі моменти про клас Java HashSet:

  • HashSet зберігає елементи за допомогою механізму під назвою хешування.
  • HashSet містить лише унікальні елементи.
  • HashSet допускає нульове значення.
  • Клас HashSet не синхронізований.
  • HashSet не підтримує порядок вставки. Тут елементи вставляються на основі їх хеш-коду.
  • HashSet — найкращий підхід для пошукових операцій.
  • Початкова ємність HashSet за замовчуванням становить 16, а коефіцієнт завантаження – 0,75.

Різниця між List і Set

Список може містити повторювані елементи, тоді як Set містить лише унікальні елементи.

Ієрархія класу HashSet

Клас HashSet розширює клас AbstractSet, який реалізує інтерфейс Set. Інтерфейс Set успадковує інтерфейси Collection та Iterable в ієрархічному порядку.


Оголошення класу HashSet

Давайте подивимося оголошення для класу java.util.HashSet.

 public class HashSet extends AbstractSet implements Set, Cloneable, Serializable 

Конструктори класу Java HashSet

SN Конструктор опис
1) HashSet() Він використовується для створення стандартного HashSet.
2) HashSet (ємність int) Він використовується для ініціалізації ємності набору хешів заданим цілим значенням. Ємність зростає автоматично, коли елементи додаються до HashSet.
3) HashSet(int ємність, float loadFactor) Він використовується для ініціалізації ємності набору хешів заданим цілим значенням ємності та вказаним коефіцієнтом завантаження.
4) HashSet(Колекція c) Він використовується для ініціалізації хеш-набору за допомогою елементів колекції c.

Методи класу Java HashSet

Нижче наведено різні методи класу Java HashSet:

SN Модифікатор і тип метод опис
1) логічний додати (E e) Він використовується для додавання зазначеного елемента до цього набору, якщо його ще немає.
2) недійсний очистити() Він використовується для видалення всіх елементів із набору.
3) об'єкт клонувати() Він використовується для повернення неглибокої копії цього екземпляра HashSet: самі елементи не клонуються.
4) логічний містить (об'єкт o) Він використовується для повернення істини, якщо цей набір містить вказаний елемент.
5) логічний пусто() Він використовується для повернення істини, якщо цей набір не містить елементів.
6) Ітератор ітератор() Він використовується для повернення ітератора над елементами цього набору.
7) логічний видалити (об'єкт o) Він використовується для видалення зазначеного елемента з цього набору, якщо він присутній.
8) внутр розмір() Використовується для повернення кількості елементів у наборі.
9) Розплітор spliterator() Він використовується для створення над елементами в наборі Spliterator із пізнім прив’язуванням і швидким відмовами.

Приклад Java HashSet

Давайте розглянемо простий приклад HashSet. Зверніть увагу, елементи повторюються в невпорядкованій колекції.

 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 

Приклад Java HashSet ігнорує повторювані елементи

У цьому прикладі ми бачимо, що HashSet не дозволяє повторювати елементи.

 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 

Приклад Java HashSet для видалення елементів

Тут ми бачимо різні способи видалення елемента.

 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 з іншої колекції

 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 

Приклад Java HashSet: Книга

Давайте розглянемо приклад HashSet, де ми додаємо книги для набору та друкуємо всі книги.

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

Вихід:

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

Вам також може сподобатися:

Робота HashSet в Java