Vad är en HashSet?

HashSet är en inbyggd datatyp i Java, och i lekmannatermer kan du säga " HashSet är en oordnad samling av unika element." Ta en titt på ett grundläggande exempel:HashSet innehåller () metod i Java - 2
Fig 1: En illustration som visar giltiga och ogiltiga exempel på en HashSet
(Innan du går vidare förväntar vi oss att du känner till termerna hash- och hashtabeller .) HashSet utökar ( förlänger betyder att en klass ärvs från en annan klass) AbstractSet och implementerar Set-gränssnittet. Här är några punkter du måste tänka på innan du arbetar med HashSets:
  • Den skapar en samling ( samling betyder en enda enhet av objekt t.ex.: ArrayList, LinkedList, Vector etc) som använder en hashtabell för lagring.
  • Dubblettvärden är inte tillåtna i en HashSet.
  • Du kan infoga "null"-värden i en HashSet.
  • Ingen insättningsordning bibehålls. Så om du vill infoga objekt i ordning, kommer en HashSet att vara ett dåligt val för dina krav.
  • Om du vill hämta/hämta ett element i konstant tid (O(1)) så är ett HashSet ett av de bästa tillvägagångssätten du kan ta.

Vad är metoden HashSet.contains()?

HashSet.contains() är en boolesk metod för att kontrollera om ett objekt finns i en instans av HashSet eller inte. Enkelt uttryckt, om setet innehåller det önskade elementet. Java.util.HashSet tillhandahåller en effektiv implementering för det. Låt oss visa dig hur du effektivt kan använda det för att lösa dina frågor.

contains() med heltal


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));
   }
}
Produktion
Alla element i hashset: [0, null, 1, 2, 3, 4, 5] Efter att du har lagt till dubbletter: [0, null, 1, 2, 3, 4, 5] -------Använder Contains Method- ------ digits.contains(0) : true digits.contains(2) : true digits.contains(3) : false digits.contains(null) : sant

contains() med Strings

Ta en titt på ett annat exempel på contains() -metoden med 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);         
	}
}
Produktion
Att korsa regnbågen: Röd Violett Gul Blå Indigo Orange Grön -------Att använda Contains Method------- rainbow.contains("Yellow"): true rainbow.contains("White"): falsk regnbåge. contains("Lavendel"): false rainbow.contains("Red"): true rainbow.contains("Red"): false Efter att ha tagit bort Röd: [Violett, Gul, Blå, Indigo, Orange, Grön]
Som du kan se skiljer sig ordningen för utdata från ordningen för att lägga in elementen i hashset.

Slutsats

Metoden contains() för HashSets är ganska enkel att använda. Men i fall av förvirring kan du alltid hänvisa till det här inlägget. Glad kodning! :)