logo

Java Karma Kümesi

Java HashSet sınıf hiyerarşisi

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ı