Java HashSet sınıfı, depolama için karma tablo kullanan bir koleksiyon oluşturmak için kullanılır. AbstractSet sınıfını miras alır ve Set arayüzünü uygular.
Java HashSet sınıfıyla ilgili önemli noktalar şunlardır:
- HashSet, elemanları adı verilen bir mekanizmayı kullanarak saklar. karma.
- HashSet yalnızca benzersiz öğeler içerir.
- HashSet boş değere izin verir.
- HashSet sınıfı senkronize değil.
- HashSet ekleme sırasını korumaz. Burada öğeler karma kodlarına göre eklenir.
- HashSet, arama işlemleri için en iyi yaklaşımdır.
- HashSet'in başlangıçtaki varsayılan kapasitesi 16 ve yük faktörü 0,75'tir.
Liste ve Küme Arasındaki Fark
Bir liste yinelenen öğeler içerebilirken Set yalnızca benzersiz öğeler içerir.
HashSet sınıfının hiyerarşisi
HashSet sınıfı, Set arayüzünü uygulayan AbstractSet sınıfını genişletir. Set arayüzü, Koleksiyon ve Yinelenebilir arayüzleri hiyerarşik sırayla devralır.
HashSet sınıf bildirimi
Java.util.HashSet sınıfının bildirimine bakalım.
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Java HashSet sınıfının yapıcıları
SN | Oluşturucu | Tanım |
---|---|---|
1) | HashSet() | Varsayılan bir HashSet oluşturmak için kullanılır. |
2) | HashSet(int kapasite) | Karma kümesinin kapasitesini verilen tamsayı değeri kapasitesine başlatmak için kullanılır. HashSet'e öğeler eklendikçe kapasite otomatik olarak artar. |
3) | HashSet(int kapasite, float loadFactor) | Karma kümesinin kapasitesini verilen tamsayı değeri kapasitesine ve belirtilen yük faktörüne başlatmak için kullanılır. |
4) | HashSet(Koleksiyon c) | c koleksiyonunun elemanlarını kullanarak karma setini başlatmak için kullanılır. |
Java HashSet sınıfının yöntemleri
Java HashSet sınıfının çeşitli yöntemleri aşağıdaki gibidir:
SN | Değiştirici ve Tür | Yöntem | Tanım |
---|---|---|---|
1) | boolean | ekle(E e) | Belirtilen elemanın halihazırda mevcut olmaması halinde bu kümeye eklenmesi için kullanılır. |
2) | geçersiz | temizlemek() | Kümeden tüm elemanları çıkarmak için kullanılır. |
3) | nesne | klon() | Bu HashSet örneğinin sığ bir kopyasını döndürmek için kullanılır: öğelerin kendisi klonlanmaz. |
4) | boolean | içerir(Nesne o) | Bu küme belirtilen öğeyi içeriyorsa true değerini döndürmek için kullanılır. |
5) | boolean | boş() | Bu kümenin hiçbir öğe içermemesi durumunda true değerini döndürmek için kullanılır. |
6) | Yineleyici | yineleyici() | Bu kümedeki öğeler üzerinde bir yineleyici döndürmek için kullanılır. |
7) | boolean | kaldır(Nesne o) | Belirtilen elemanın mevcut olması halinde bu kümeden çıkarılması için kullanılır. |
8) | int | boyut() | Kümedeki eleman sayısını döndürmek için kullanılır. |
9) | Ayırıcı | ayırıcı() | Kümedeki öğeler üzerinde geç bağlama ve arıza hızlı bir Spliterator oluşturmak için kullanılır. |
Java HashSet Örneği
HashSet'in basit bir örneğini görelim. Dikkat edin, öğeler sırasız bir koleksiyonda yinelenir.
import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Five One Four Two Three
Yinelenen öğeleri yok sayan Java HashSet örneği
Bu örnekte HashSet'in yinelenen öğelere izin vermediğini görüyoruz.
import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Ajay Vijay Ravi
Öğeleri kaldırmak için Java HashSet örneği
Burada bir öğeyi kaldırmanın farklı yollarını görüyoruz.
import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } }
An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: []
Başka bir Koleksiyondan Java HashSet
import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Vijay Ravi Gaurav Ajay
Java HashSet Örneği: Kitap
Tüm kitapları ayarlamak ve yazdırmak için kitap eklediğimiz bir HashSet örneğini görelim.
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Çıktı:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Şunlar da hoşunuza gidebilir:
HashSet'in Java'da Çalışması