Cos'è un HashSet?
HashSet è un tipo di dati integrato in Java e, in parole povere, puoi dire "HashSet è una raccolta non ordinata di elementi unici". Dai un'occhiata a un esempio di base:
- Crea una raccolta ( raccolta significa una singola unità di oggetti, ad esempio: ArrayList, LinkedList, Vector ecc.) Che utilizza una tabella hash per l'archiviazione.
- I valori duplicati non sono consentiti in un HashSet.
- È possibile inserire valori "null" in un HashSet.
- Non viene mantenuto alcun ordine di inserzione. Quindi, se stai cercando di inserire elementi in ordine, un HashSet sarà una cattiva scelta per le tue esigenze.
- Se vuoi ottenere/recuperare un elemento in tempo costante (O(1)), allora un HashSet è uno dei migliori approcci che puoi adottare.
Cos'è il metodo HashSet.contains()?
HashSet.contains() è un metodo booleano per verificare se un elemento è presente o meno in un'istanza di HashSet. In poche parole, se l'insieme contiene l'elemento desiderato. Java.util.HashSet ne fornisce un'implementazione efficiente. Lascia che ti mostriamo come puoi usarlo in modo efficace per risolvere le tue domande.contiene() con numeri interi
import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Declare your hash set
HashSet digits = new HashSet();
digits.add(0);
digits.add(1);
digits.add(2);
digits.add(3);
digits.add(4);
digits.add(5);
digits.add(null);
System.out.println("All elements in hashset:\t" + digits);
// Try adding duplicates
digits.add(5);
digits.add(2);
System.out.println("After adding duplicates: \t" + digits);
System.out.println("\n-------Using Contains Method-------");
// Check out if the following digits exist in the hashset
System.out.println("digits.contains(0) : " + digits.contains(0));
System.out.println("digits.contains(2) : " + digits.contains(2));
System.out.println("digits.contains(3) : " + digits.contains(7));
System.out.println("digits.contains(null) : " + digits.contains(null));
}
}
Produzione
Tutti gli elementi in hashset: [0, null, 1, 2, 3, 4, 5] Dopo aver aggiunto i duplicati: [0, null, 1, 2, 3, 4, 5] -------Utilizzando il metodo Contains- ------ digits.contains(0) : true digits.contains(2) : true digits.contains(3) : false digits.contains(null) : true
contiene() con stringhe
Dai un'occhiata a un altro esempio di metodo contains() con Strings .import java.util.HashSet;
public class HashSetDemo {
public static void main(String[] args) {
// Try working with another hash set of String type
HashSet rainbow = new HashSet();
// Adding elements into HashSet using add()
rainbow.add("Red");
rainbow.add("Orange");
rainbow.add("Yellow");
rainbow.add("Green");
rainbow.add("Blue");
rainbow.add("Indigo");
rainbow.add("Violet");
// Let's traverse the hashset
System.out.println("Traversing the rainbow:");
for (String i : rainbow){
System.out.println(i);
}
// Check out if rainbow contains this color or not
System.out.println("\n-------Using Contains Method-------");
System.out.println("rainbow.contains(\"Yellow\"): \t" + rainbow.contains("Yellow"));
System.out.println("rainbow.contains(\"White\"): \t" + rainbow.contains("White"));
System.out.println("rainbow.contains(\"Lavender\"): \t" + rainbow.contains("Lavender"));
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
// Remove a color from rainbow using remove()
rainbow.remove("Red");
// Now consume set contains() method again to check if it's still present
System.out.println("rainbow.contains(\"Red\"): \t" + rainbow.contains("Red"));
System.out.println("\nAfter removing Red: " + rainbow);
}
}
Produzione
Attraversando l'arcobaleno: Rosso Viola Giallo Blu Indaco Arancione Verde -------Utilizzo del metodo Contains------- rainbow.contains("Yellow"): true rainbow.contains("White"): false rainbow. contains("Lavender"): false rainbow.contains("Red"): true rainbow.contains("Red"): false Dopo aver rimosso Red: [Violet, Yellow, Blue, Indigo, Orange, Green]
Come puoi vedere, l'ordine di output è diverso dall'ordine di inserimento degli elementi nell'hashset.
GO TO FULL VERSION