هش ست چیست؟
HashSet یک نوع داده داخلی در جاوا است و به زبان ساده می توانید بگویید "HashSet مجموعه ای نامرتب از عناصر منحصر به فرد است." به یک مثال اساسی نگاه کنید:
- مجموعه ای را ایجاد می کند ( مجموعه به معنای واحد واحدی از اشیاء است به عنوان مثال: ArrayList، LinkedList، Vector و غیره) که از جدول هش برای ذخیره سازی استفاده می کند.
- مقادیر تکراری در HashSet مجاز نیستند.
- میتوانید مقادیر «تهی» را در 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، تهی، 1، 2، 3، 4، 5] پس از افزودن موارد تکراری: [0، null، 1، 2، 3، 4، 5] -------استفاده از روش حاوی ------ digits.contains(0) : true digits.contains(2): true digits.contains(3): digits false.contains(null) : true
حاوی() با رشته ها
به مثال دیگری از متد contain() با 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("زرد"): real rainbow.contains("White"): fase rainbow. حاوی ("Lavender"): fase rainbow.contains("Red"): true rainbow.contains("قرمز"): false پس از حذف قرمز: [بنفش، زرد، آبی، نیلی، نارنجی، سبز]
همانطور که می بینید ترتیب خروجی با ترتیب قرار دادن عناصر در هش ست متفاوت است.
GO TO FULL VERSION