Јава ХасхСет класа се користи за креирање колекције која користи хеш табелу за складиштење. Он наслеђује класу АбстрацтСет и имплементира Сет интерфејс.
Важне тачке о Јава ХасхСет класи су:
- ХасхСет складишти елементе користећи механизам тзв хеширање.
- ХасхСет садржи само јединствене елементе.
- ХасхСет дозвољава нулту вредност.
- ХасхСет класа није синхронизована.
- ХасхСет не одржава редослед уметања. Овде се елементи убацују на основу њиховог хеш кода.
- ХасхСет је најбољи приступ за операције претраживања.
- Почетни подразумевани капацитет ХасхСет-а је 16, а фактор оптерећења је 0,75.
Разлика између листе и скупа
Листа може да садржи дупликате елемената док Сет садржи само јединствене елементе.
Хијерархија класе ХасхСет
Класа ХасхСет проширује класу АбстрацтСет која имплементира Сет интерфејс. Интерфејс Сет наслеђује интерфејсе Цоллецтион и Итерабле у хијерархијском редоследу.
груписање
ХасхСет декларација класе
Хајде да видимо декларацију за класу јава.утил.ХасхСет.
питхон је нумерички
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Конструктори Јава ХасхСет класе
СН | Цонструцтор | Опис |
---|---|---|
1) | ХасхСет() | Користи се за конструисање подразумеваног ХасхСета. |
2) | ХасхСет (инт капацитет) | Користи се за иницијализацију капацитета хеша постављеног на дату целобројну вредност капацитета. Капацитет аутоматски расте како се елементи додају у ХасхСет. |
3) | ХасхСет(инт капацитет, флоат фактор оптерећења) | Користи се за иницијализацију капацитета хеш постављеног на дату целобројну вредност капацитета и специфицирани фактор оптерећења. |
4) | ХасхСет (колекција ц) | Користи се за иницијализацију хеш скупа коришћењем елемената колекције ц. |
Методе класе Јава ХасхСет
Различите методе Јава ХасхСет класе су следеће:
СН | Модификатор и тип | Метод | Опис |
---|---|---|---|
1) | боолеан | додај (Е е) | Користи се за додавање наведеног елемента овом скупу ако већ није присутан. |
2) | празнина | јасно() | Користи се за уклањање свих елемената из скупа. |
3) | објекат | клон () | Користи се за враћање плитке копије ове ХасхСет инстанце: сами елементи нису клонирани. |
4) | боолеан | садржи (објекат о) | Користи се за враћање труе ако овај скуп садржи наведени елемент. |
5) | боолеан | Празно() | Користи се за враћање труе ако овај скуп не садржи елементе. |
6) | Итератор | итератор() | Користи се за враћање итератора преко елемената у овом скупу. |
7) | боолеан | уклонити (објекат о) | Користи се за уклањање наведеног елемента из овог скупа ако је присутан. |
8) | инт | величина() | Користи се за враћање броја елемената у скупу. |
9) | Сплитератор | сплитератор() | Користи се за креирање касно-везујућег и брзог Сплитера преко елемената у скупу. |
Јава ХасхСет Пример
Хајде да видимо једноставан пример ХасхСет-а. Приметите, елементи се понављају у неуређеној колекцији.
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
Јава ХасхСет пример игнорисања дупликата елемената
У овом примеру видимо да ХасхСет не дозвољава дуплиране елементе.
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
Јава ХасхСет пример за уклањање елемената
Овде видимо различите начине за уклањање елемента.
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: []
Јава ХасхСет из друге колекције
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
Јава ХасхСет Пример: књига
Хајде да видимо ХасхСет пример где додајемо књиге за постављање и штампамо све књиге.
спајање низова
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
Можда ће ти се свидети и:
Рад ХасхСета у Јави