HashSet в Java е един от най-важните аспекти на . Обикновено се използва за съхраняване на уникални стойности по неподреден начин. Посредством тази статия за HashSet в Java, ще ви дам пълен преглед на това какво точно е HashSet и как можете да го използвате във вашето приложение.
По-долу са разгледани темите в тази статия:
- HashSet в Java
- Java HashSet срещу HashMap
- HashSet Йерархия
- Конструктори на java.util.HashSet Class
- Методи на клас java.util.HashSet
- Внедряване на HashSet в Java програма
Нека започнем, като първо разберем какво представляват HashSet в Java.
HashSet в Java
java.util.HashSet клас е член на рамката на Java колекции, коятонаследява класа AbstractSet иизпълняваКомплект интерфейс . Той имплицитно реализира хеш-таблица за създаване и съхраняване на колекция от уникални елементи. Hashtable не е нищо друго освен екземпляр на класа HashMap, който използва хеширащ механизъм за съхраняване на информацията в HashSet.
какво е * в sql
Хеширането е процес на преобразуване на информационното съдържание в уникална стойност, която е по-известна като хеш код. След това този хеш-код се използва за индексиране на данните, свързани с ключа. Целият процес на трансформиране на информационния ключ в хеш-код се извършва вътрешно.
Сега за по-добро разбиране на HashSet в Java, позволете ми да изброя няколко негови функции:
- HashSet в Java не позволява дублирани стойности.
- Може да съдържа нулеви стойности.
- HashSet не следва реда за вмъкване за съхранение на данните, а използва хеш-кода за индексиране на стойностите вътре.
- Не е синхронизирани което автоматично го прави безопасно за нишките.
- Класът HashSet също така изпълнява Cloneable иСериализуеми интерфейси.
След като вече сте наясно какво точно представлява HashSet в Java, нека продължим с тази статия и демистифицираме разликите между HashMap и HashSet в Java.
Java HashSet срещу HashMap
HashSet | HashMap |
Приложенияjava.util.Задайте интерфейс | Приложенияjava.util.Map |
Съхранява данни като обекти | Съхранява данни под формата на двойка ключ-стойност |
HashSet изисква само един параметър за инициализацията на обекта си | Той изисква два параметъра (ключ, стойност) за инициализацията на обекта си |
Не позволява дублиращи се елементи | Не позволява дублиращи се ключове, но можете да съхранявате дублирани стойности |
Позволява единична нулева стойност | Позволява един нулев ключ и произволен брой нулеви стойности |
HashSet използвайте add ()метод за добавяне или съхраняване на данни | HashMap използва метода put () за съхранение на данни |
Сега, когато имате ясно разграничение между HashMap и HashSet, нека сега се фокусираме отново върху HashSet и да се потопим по-дълбоко в него. В следващия раздел на тази статия ще ви запозная с пълната йерархия на HashSet в Java.
HashSet Йерархия в Java
Както можете да видите от дадената по-долу диаграма,Класът HashSet реализира интерфейса Set. Интерфейсът Set също наследява интерфейса Collection, който в крайна сметка разширява Iterable интерфейса в йерархичен ред.
Сега, напредвайки с тази статия за HashSet в Java, нека проверим различните конструктори поддържани от този клас.
Конструктори на java.util.HashSet Class
Строител | Описание |
HashSet () | Това е конструкторът по подразбиране за класа HashSet |
HashSet (вътрешен капацитет) | Този конструктор се използва за инициализиране на първоначалния капацитет на хеш набора. Капацитетът може да нараства динамично с добавянето на нови елементи |
HashSet (int capacity, float loadCapacity) | Този конструктор се използва за инициализиране на първоначалния капацитет на зададения хеш заедно с товароносимостта |
HashSet (Колекция c) | Този конструктор се използва за инициализиранехешът, зададен с помощта на елементите от Колекция c |
Това бяха четирите конструктора на класа HashSet в . Нека сега разберем кои са различните дефиниран в Java HashSet.
Методи на клас java.util.HashSet
Метод | Описание |
булево добавяне (обект obj) | Този метод помага за добавяне на определен елемент в HashSet само ако той не присъства |
празно ясно () | Този метод помага при премахването на всички елементи от HashSet |
Клон на обект () | Този метод връща плитко копие на екземпляра HashSet, а не клонинги на елементите HashSet |
boolean съдържа (Обект o) | Този метод връща true, ако подаденият елемент присъства в HashSet |
boolean isEmpty () | Този метод връща true в случай, че HashSet е празен |
Итератор на итератор () | Този метод връща итератор върху елементите, присъстващи в HashSet |
булево премахване (обект o) | Този метод помага при премахването на посочения елемент от HashSet, ако той присъства |
размер int () | Този метод връща общия брой елементи, налични в HashSet |
Заедно с изброените по-горе методи, класът HashSet в Java съдържа и от своите суперкласове.
Нека сега се опитаме да приложим тези методи и да намокрим краката си с кодиране.
Внедряване на HashSet в Java програма
В примера по-долу ще се опитаме да внедрим редица методи, предоставени от класа HashSet.
import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Създаване на набор от HashSet eduCourses = new HashSet () // Добавяне на нови елементи към HashSet eduCourses.add ('Големи данни') eduCourses.add ('Node.js') eduCourses.add ('Java') eduCourses.add ('Python') eduCourses.add ('Blockchain') eduCourses.add ('JavaScript') eduCourses. add ('Selenium') eduCourses.add ('AWS') eduCourses.add ('Machine Learning') eduCourses.add ('RPA') // Добавянето на дублиращи се елементи ще бъде игнорирано eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Проверете дали HashSet съдържа специфичен елемент String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' е в списъка с курсове. ')} else {System.out.println (myCourse +' не е в списъка с курсове. ')} // Сортиране на eduCourses с помощта на List List list = new ArrayList (eduCourses) Collections.sort (list) // Отпечатване на сортираните елементи на HashSet System.out.println (' Отпечатване на курсовете в сортиран ред, като се използва Списък: '+ list) // Премахване на елементи от HashSet с помощта на remove () eduCourses.remove (' Python ') // Итериране върху елементи на HashSet System.out.println (' Итерация върху списък с курсове след премахване Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Създаване на друг обект на HashSet HashSet eduNewCourses = нов HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Премахване на всички нови елементи от HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('След извикване на removeAll () ляво на курсове на метода: '+ eduCourses) // Премахване на елементи въз основа на определено условие eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' След извикване на метод removeIf (): '+ eduCourses) // Премахване на елементи от eduCourses, посочени в eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println (операция 'HashSet след' + 'retainAll (): '+ eduNewCourses) // Премахване на всички елементи, налични в набора eduCourses.clear () System.out.println (' След извикване на метод clear (): '+ eduCourses)}}
Когато изпълните горния код, той ще ви даде показания по-долу резултат.
С това стигнахме до края на тази статия. Надявам се, че успях да запазя понятията чисти и ясни. Можете да научите повече за като минем през нашия .
След като разбрахте какво е HashSet в Java, разгледайте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия „HashSet в Java“ и ние ще се свържем с вас възможно най-скоро.
каква е процедурата в sql