Java Hashtable sınıfı, anahtarları değerlerle eşleştiren bir karma tablosu uygular. Dictionary sınıfını devralır ve Harita arayüzünü uygular.
Hatırlanacak noktalar
- Hashtable bir liste dizisidir. Her liste bir kova olarak bilinir. Kovanın konumu hashcode() yöntemi çağrılarak tanımlanır. Bir Hashtable, anahtara dayalı değerleri içerir.
- Java Hashtable sınıfı benzersiz öğeler içerir.
- Java Hashtable sınıfı boş anahtara veya değere izin vermez.
- Java Hashtable sınıfı senkronize edilir.
- Hashtable sınıfının başlangıç varsayılan kapasitesi 11, loadFactor ise 0,75'tir.
Hashtable sınıf bildirimi
Java.util.Hashtable sınıfının bildirimine bakalım.
public class Hashtable extends Dictionary implements Map, Cloneable, Serializable
Hashtable sınıfı Parametreler
Java.util.Hashtable sınıfının Parametrelerini görelim.
Java Hashtable sınıfının yapıcıları
Oluşturucu | Tanım |
---|---|
Hashtable() | Başlangıçtaki varsayılan kapasiteye ve yük faktörüne sahip boş bir hash tablosu oluşturur. |
Hashtable(int kapasite) | Bir tamsayı parametresini kabul eder ve belirtilen başlangıç kapasitesini içeren bir karma tablo oluşturur. |
Hashtable(int kapasite, float loadFactor) | Belirtilen başlangıç kapasitesine ve loadFactor'a sahip bir karma tablosu oluşturmak için kullanılır. |
Hashtable(Harita t) | Verilen Harita ile aynı eşlemelere sahip yeni bir karma tablo oluşturur. |
Java Hashtable sınıfının yöntemleri
Yöntem | Tanım |
---|---|
geçersiz temizleme() | Hash tablosunu sıfırlamak için kullanılır. |
Nesne klonu() | Hashtable'ın yüzeysel bir kopyasını döndürür. |
V hesaplama(K tuşu, BiFunction remappingFunction) | Belirtilen anahtar ve onun geçerli eşlenen değeri (veya geçerli eşleme yoksa null) için bir eşleme hesaplamak için kullanılır. |
V computeIfAbsent(K tuşu, İşlev eşlemeFonksiyonu) | Belirtilen anahtar halihazırda bir değerle ilişkilendirilmemişse (veya null ile eşlenmişse) ve null olmadığı sürece onu bu haritaya girerse, verilen eşleme işlevini kullanarak değerini hesaplamak için kullanılır. |
V computeIfPresent(K tuşu, BiFunction remappingFunction) | Belirtilen anahtarın değeri mevcutsa ve boş değilse, anahtar ve onun mevcut eşlenen değeri verilen yeni bir eşlemeyi hesaplamak için kullanılır. |
Numaralandırma öğeleri() | Karma tablosundaki değerlerin numaralandırılmasını döndürür. |
Ayarlamak | Haritada bulunan eşlemelerin belirli bir görünümünü döndürür. |
boole eşittir (Nesne o) | Belirtilen Nesneyi Harita ile karşılaştırmak için kullanılır. |
void forEach(BiConsumer eylemi) | Tüm girişler işlenene veya eylem bir istisna atıncaya kadar, haritadaki her giriş için verilen eylemi gerçekleştirir. |
V getOrDefault(Nesne anahtarı, V defaultValue) | Belirtilen anahtarın eşlendiği değeri veya eşleme anahtar için eşleme içermiyorsa defaultValue değerini döndürür. |
int hashCode() | Haritanın karma kod değerini döndürür |
Numaralandırma tuşları() | Hash tablosundaki anahtarların numaralandırılmasını döndürür. |
KeySet()'i ayarla | Haritada bulunan anahtarların Set görünümünü döndürür. |
V birleştirme(K tuşu, V değeri, BiFunction remappingFunction) | Belirtilen anahtar zaten bir değerle ilişkilendirilmemişse veya null ile ilişkilendirilmişse, onu verilen null olmayan değerle ilişkilendirir. |
V koyma(K tuşu, V değeri) | Belirtilen değeri belirtilen anahtarla karma tablosuna ekler. |
void putAll(Harita t)) | Tüm anahtar/değer çiftini haritadan karma tablosuna kopyalamak için kullanılır. |
V putIfAbsent(K tuşu, V değeri) | Belirtilen anahtar halihazırda bir değerle ilişkilendirilmemişse (veya null ile eşlenmişse), onu verilen değerle ilişkilendirir ve null değerini döndürür, aksi takdirde geçerli değeri döndürür. |
boolean kaldır(Nesne anahtarı, Nesne değeri) | Belirtilen değerleri, ilişkili belirtilen anahtarlarla birlikte hash tablosundan kaldırır. |
V değiştir(K tuşu, V değeri) | Belirtilen anahtar için belirtilen değerin yerini alır. |
boolean değiştirme(K tuşu, V eskiDeğer, V yeniDeğer) | Belirtilen anahtarın eski değerini yeni değerle değiştirir. |
void Hepsini Değiştir(BiFunction işlevi) | Tüm girişler işlenene veya işlev bir istisna atıncaya kadar, her girişin değerini, o girişte verilen işlevin çağrılmasının sonucuyla değiştirir. |
Dize toString() | Hashtable nesnesinin dize temsilini döndürür. |
Koleksiyon değerleri() | Haritada bulunan değerlerin koleksiyon görünümünü döndürür. |
boolean içerir(Nesne değeri) | Bu yöntem, karma tablosunda değere eşit bir değer mevcutsa true değerini döndürür, aksi takdirde false değerini döndürür. |
boolean includeValue(Nesne değeri) | Bu yöntem, karma tablosunda değere eşit bir değer mevcutsa true değerini döndürür, aksi takdirde false değerini döndürür. |
boolean includeKey(Nesne anahtarı) | Bu yöntem, karma tablosunda anahtara eşit bir anahtar varsa true değerini döndürür, aksi takdirde false değerini döndürür. |
boolean isEmpty() | Bu yöntem, karma tablosu boşsa true değerini döndürür; en az bir anahtar içeriyorsa false değerini döndürür. |
korumalı geçersiz rehash() | Hash tablosunun boyutunu arttırmak ve tüm anahtarlarını yeniden hash etmek için kullanılır. |
V get(Nesne anahtarı) | Bu yöntem, anahtarla ilişkili değeri içeren nesneyi döndürür. |
V kaldır(Nesne anahtarı) | Anahtarı ve değerini kaldırmak için kullanılır. Bu yöntem anahtarla ilişkili değeri döndürür. |
int boyut() | Bu yöntem, karma tablosundaki girişlerin sayısını döndürür. |
Java Hashtable Örneği
import java.util.*; class Hashtable1{ public static void main(String args[]){ Hashtable hm=new Hashtable(); hm.put(100,'Amit'); hm.put(102,'Ravi'); hm.put(101,'Vijay'); hm.put(103,'Rahul'); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Şimdi Test Edin
Çıktı:
103 Rahul 102 Ravi 101 Vijay 100 Amit
Java Hashtable Örneği: kaldır()
import java.util.*; public class Hashtable2 { public static void main(String args[]) { Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before remove: '+ map); // Remove value for key 102 map.remove(102); System.out.println('After remove: '+ map); } }
Çıktı:
Before remove: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} After remove: {103=Rahul, 101=Vijay, 100=Amit}
Java Hashtable Örneği: getOrDefault()
import java.util.*; class Hashtable3{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Here, we specify the if and else statement as arguments of the method System.out.println(map.getOrDefault(101, 'Not Found')); System.out.println(map.getOrDefault(105, 'Not Found')); } }
Çıktı:
Vijay Not Found
Java Hashtable Örneği: putIfAbsent()
import java.util.*; class Hashtable4{ public static void main(String args[]){ Hashtable map=new Hashtable(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Initial Map: '+map); //Inserts, as the specified pair is unique map.putIfAbsent(104,'Gaurav'); System.out.println('Updated Map: '+map); //Returns the current value, as the specified pair already exist map.putIfAbsent(101,'Vijay'); System.out.println('Updated Map: '+map); } }
Çıktı:
Initial Map: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} Updated Map: {104=Gaurav, 103=Rahul, 102=Ravi, 101=Vijay, 100=Amit}
Java Hashtable Örneği: Kitap
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 HashtableExample { public static void main(String[] args) { //Creating map of Books Map map=new Hashtable(); //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 map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Çıktı:
3 Details: 103 Operating System Galvin Wiley 6 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 1 Details: 101 Let us C Yashwant Kanetkar BPB 8