CodeGym /จาวาบล็อก /สุ่ม /HashSet มี () วิธีการใน Java
John Squirrels
ระดับ
San Francisco

HashSet มี () วิธีการใน Java

เผยแพร่ในกลุ่ม

HashSet คืออะไร?

HashSet เป็นประเภทข้อมูลที่มีอยู่แล้วภายใน Java และในแง่คนธรรมดาคุณสามารถพูดว่า"HashSet เป็นคอลเลกชันที่ไม่เรียงลำดับขององค์ประกอบที่ไม่ซ้ำกัน" ดูตัวอย่างพื้นฐาน:HashSet ประกอบด้วย () วิธีการใน Java - 2
รูปที่ 1: ภาพประกอบแสดงตัวอย่าง HashSet ที่ถูกต้องและไม่ถูกต้อง
(ก่อนที่คุณจะไปต่อ เราคาดหวังให้คุณทราบเกี่ยวกับเงื่อนไขการแฮชและตารางแฮช ) HashSet ขยาย ( ขยายหมายถึงคลาสที่สืบทอดมาจากคลาสอื่น) AbstractSetและใช้อินเทอร์เฟซ Set ต่อไปนี้เป็นจุดที่คุณต้องพิจารณาก่อนที่จะทำงานกับ HashSets:
  • มันสร้างคอลเลกชัน ( คอลเลกชันหมายถึงหน่วยเดียวของวัตถุเช่น: ArrayList, LinkedList, Vector ฯลฯ ) ที่ใช้ตารางแฮชสำหรับการจัดเก็บ
  • ไม่อนุญาตให้ใช้ค่าที่ซ้ำกันใน HashSet
  • คุณสามารถแทรกค่า "null" ใน HashSet
  • ไม่มีการรักษาลำดับการแทรก ดังนั้น ถ้าคุณต้องการแทรกรายการตามลำดับ HashSet จะเป็นตัวเลือกที่ไม่ดีสำหรับความต้องการของคุณ
  • หากคุณต้องการรับ/ดึงข้อมูลองค์ประกอบในเวลาคงที่(O(1))ดังนั้น HashSet จึงเป็นหนึ่งในแนวทางที่ดีที่สุดที่คุณสามารถทำได้

HashSet.contains() วิธีการคืออะไร?

HashSet.contains()เป็นวิธีการบูลีนเพื่อตรวจสอบว่ามีรายการอยู่ในอินสแตนซ์ของ HashSet หรือไม่ ใส่เพียงแค่ว่าชุดมีองค์ประกอบที่ต้องการหรือไม่ Java.util.HashSetให้การใช้งานที่มีประสิทธิภาพสำหรับมัน ให้เราแสดงให้คุณเห็นว่าคุณสามารถใช้มันเพื่อแก้ไขข้อสงสัยของคุณได้อย่างไร

มี () กับจำนวนเต็ม


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));
   }
}
เอาต์พุต
องค์ประกอบทั้งหมดในแฮชเซ็ต: [0, null, 1, 2, 3, 4, 5] หลังจากเพิ่มรายการที่ซ้ำกัน: [0, null, 1, 2, 3, 4, 5] ------- การใช้วิธีการประกอบด้วย- ------ digits.contains(0) : จริง digits.contains(2) : จริง digits.contains(3) : เท็จ digits.contains(null) : จริง

มี () กับสตริง

ดูตัวอย่างอื่นของ วิธีการที่มี ( )กับ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);         
	}
}
เอาต์พุต
ข้ามสายรุ้ง: แดง ม่วง เหลือง น้ำเงิน คราม ส้ม เขียว ------- ใช้วิธีประกอบด้วย ------- rainbow.contains("Yellow"): true rainbow.contains("White"): รุ้งเท็จ มี("ลาเวนเดอร์"): เท็จ สายรุ้ง.ประกอบด้วย("สีแดง"): จริง สายรุ้ง.ประกอบด้วย("สีแดง"): เท็จ หลังจากลบสีแดง: [ม่วง, เหลือง, น้ำเงิน, คราม, ส้ม, เขียว]
อย่างที่คุณเห็นว่าลำดับของผลลัพธ์นั้นแตกต่างจากลำดับของการใส่องค์ประกอบลงใน Hashset

บทสรุป

เมธอดประกอบด้วย ()สำหรับ HashSets เป็นวิธีที่ค่อนข้างใช้ง่าย อย่างไรก็ตาม ในกรณีที่เกิดความสับสน คุณสามารถอ้างถึงโพสต์นี้ได้เสมอ มีความสุขในการเข้ารหัส! :)
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION