HashSet w Javie jest jednym z najważniejszych aspektów . Zwykle służy do przechowywania unikatowych wartości w nieuporządkowany sposób. Za pośrednictwem tego artykułu na temat HashSet w Javie przedstawię Ci kompletny przewodnik po tym, czym dokładnie jest HashSet i jak możesz go używać w swojej aplikacji.
Poniżej znajdują się tematy poruszone w tym artykule:
- HashSet w Javie
- Java HashSet vs HashMap
- Hierarchia HashSet
- Konstruktorzy klasy java.util.HashSet
- Metody klasy java.util.HashSet
- Implementacja HashSet w programie Java
Zacznijmy od zrozumienia, czym jest HashSet w Javie.
przekazać przez odwołanie w java
HashSet w Javie
java.util.HashSet klasa jest członkiem struktury kolekcji Java, któradziedziczy klasę AbstractSet iimplementujeZestaw berło . Niejawnie implementuje tablicę haszującą do tworzenia i przechowywania kolekcji unikalnych elementów. Hashtable to nic innego jak instancja klasy HashMap, która używa mechanizmu haszującego do przechowywania informacji w HashSet.
Haszowanie to proces konwertowania treści informacyjnych na unikalną wartość, popularnie nazywaną kodem skrótu. Ten kod skrótu jest następnie używany do indeksowania danych skojarzonych z kluczem. Cały proces przekształcania klucza informacyjnego w kod skrótu jest wykonywany wewnętrznie.
Teraz, aby lepiej zrozumieć HashSet w Javie, pozwól mi wymienić kilka jego funkcji:
- HashSet w Javie nie zezwala na zduplikowane wartości.
- Może zawierać wartości null.
- HashSet nie postępuje zgodnie z kolejnością wstawiania w celu przechowywania danych, ale wykorzystuje kod skrótu do indeksowania wartości w obrębie.
- To nie jest zsynchronizowane co automatycznie czyni go niebezpiecznym dla wątków.
- Klasa HashSet implementuje również Cloneable iInterfejsy szeregowe.
Teraz, gdy już wiesz, czym dokładnie jest HashSet w Javie, przejdźmy dalej w tym artykule i wyjaśnijmy różnice między HashMap i HashSet w Javie.
Java HashSet vs HashMap
HashSet | HashMap |
Przyboryjava.util.Ustaw interfejs | Przyboryjava.util.Map |
Przechowuje dane jako obiekty | Przechowuje dane w postaci pary klucz-wartość |
HashSet wymaga tylko jednego parametru do inicjalizacji obiektu | Do inicjalizacji obiektu wymagane są dwa parametry (klucz, wartość) |
Nie zezwala na zduplikowane elementy | Nie zezwala na zduplikowane klucze, ale możesz przechowywać zduplikowane wartości |
Umożliwia pojedynczą wartość null | Pozwala na pojedynczy klucz o wartości null i dowolną liczbę wartości null |
HashSet użyj add ()metoda dodawania lub przechowywania danych | HashMap używa metody put () do przechowywania danych |
Teraz, gdy masz już wyraźne rozróżnienie między HashMap i HashSet, skupmy się teraz ponownie na HashSet i zanurzmy się w nim głębiej. W następnej części tego artykułu przedstawię pełną hierarchię HashSet w Javie.
Hierarchia HashSet w Javie
Jak widać na poniższym diagramie,Klasa HashSet implementuje interfejs Set. Interfejs Set dalej dziedziczy interfejs Collection, który ostatecznie rozszerza interfejs Iterowalny w kolejności hierarchicznej.
Przechodząc dalej z tym artykułem HashSet w Javie, przyjrzyjmy się różnym konstruktorzy obsługiwane przez tę klasę.
Konstruktorzy klasy java.util.HashSet
Budowniczy | Opis |
HashSet () | To jest domyślny konstruktor klasy HashSet |
HashSet (pojemność int) | Ten konstruktor służy do inicjowania początkowej pojemności zestawu skrótów. Pojemność może dynamicznie rosnąć wraz z dodawaniem nowych elementów |
HashSet (int capacity, float loadCapacity) | Ten konstruktor służy do inicjowania początkowej pojemności zestawu skrótów wraz z pojemnością ładowania |
HashSet (kolekcja c) | Ten konstruktor służy do inicjalizacjizestaw skrótu przy użyciu elementów z kolekcji c |
Były to cztery konstruktory klasy HashSet w programie . Zobaczmy teraz, jakie są różne zdefiniowane w Java HashSet.
Metody klasy java.util.HashSet
metoda | Opis |
boolean add (Object obj) | Ta metoda pomaga w dodaniu określonego elementu do HashSet tylko wtedy, gdy nie jest obecny |
void clear () | Ta metoda pomaga w usunięciu wszystkich elementów z HashSet |
Klon obiektu () | Ta metoda zwraca płytką kopię wystąpienia HashSet, a nie klony elementów HashSet |
boolean zawiera (obiekt o) | Ta metoda zwraca wartość true, jeśli przekazany element jest obecny w HashSet |
boolean isEmpty () | Ta metoda zwraca wartość true w przypadku, gdy HashSet jest pusty |
Iterator iterator () | Ta metoda zwraca iterator dla elementów obecnych w HashSet |
boolean remove (Object o) | Ta metoda pomaga w usuwaniu określonego elementu z HashSet, jeśli jest obecny |
rozmiar int () | Ta metoda zwraca całkowitą liczbę elementów obecnych w HashSet |
Wraz z wyżej wymienionymi metodami klasa HashSet w Javie zawiera również rozszerzenie ze swoich superklas.
jak używać anaconda python
Spróbujmy teraz wdrożyć te metody i zanurzyć się w kodowaniu.
Implementacja HashSet w programie Java
W poniższym przykładzie spróbujemy zaimplementować szereg metod dostarczonych przez klasę HashSet.
import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Tworzenie zestawu HashSet eduCourses = new HashSet () // Dodawanie nowych elementów do HashSet eduCourses.add ('Big Data') 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') // Dodawanie zduplikowanych elementów będzie ignorowane eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Sprawdź, czy zestaw HashSet zawiera określony element String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' znajduje się na liście kursów. ')} else {System.out.println (myCourse +' nie ma na liście kursów. ')} // Sortowanie eduCourses przy użyciu List List list = new ArrayList (eduCourses) Collections.sort (list) // Drukowanie posortowanych elementów HashSet System.out.println (' Drukowanie kursów w porządku posortowanym za pomocą List: '+ list) // Usuwanie elementów z HashSet za pomocą remove () eduCourses.remove (' Python ') // Iterowanie po elementach HashSet System.out.println (' Iterowanie po liście kursów po usunięciu Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Tworzenie kolejnego obiektu HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Usuwanie wszystkich nowych elementów z HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Po wywołaniu funkcji removeAll () metoda kursy left: '+ eduCourses) // Usuwanie elementów na podstawie określonego warunku eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Po wywołaniu metody removeIf (): '+ eduCourses) // Usuwanie elementów z eduCourses, które są określone w eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet po operacji' + 'retainAll (): '+ eduNewCourses) // Usunięcie wszystkich elementów dostępnych w zestawie eduCourses.clear () System.out.println (' Po wywołaniu metody clear (): '+ eduCourses)}}
Kiedy wykonasz powyższy kod, da ci on pokazane poniżej wyjście.
W ten sposób dochodzimy do końca tego artykułu. Mam nadzieję, że udało mi się zachować zwięzłe i jasne koncepcje. Możesz dowiedzieć się więcej o przechodząc przez nasze .
Teraz, gdy zrozumiałeś, czym jest HashSet w Javie, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistami Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji języka Java, a także różnych struktur Java, takich jak Hibernate i Spring.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w tym artykule „HashSet w Javie”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.