Hashtable Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai.
[Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class Hashtable : Java.Util.Dictionary, IDisposable, Java.IO.ISerializable, Java.Lang.ICloneable, Java.Util.IMap
[<Android.Runtime.Register("java/util/Hashtable", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type Hashtable = class
inherit Dictionary
interface ISerializable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface ICloneable
interface IMap
- Warisan
- Atribut
- Penerapan
Keterangan
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. Setiap non-objeknull dapat digunakan sebagai kunci atau sebagai nilai.
Agar berhasil menyimpan dan mengambil objek dari hashtable, objek yang digunakan sebagai kunci harus mengimplementasikan hashCode metode dan equals metode .
Instans Hashtable memiliki dua parameter yang memengaruhi performanya: kapasitas awal dan faktor beban.
Kapasitasnya adalah jumlah wadah dalam tabel hash, dan kapasitas awal hanyalah kapasitas pada saat tabel hash dibuat. Perhatikan bahwa tabel hash terbuka: dalam kasus "tabrakan hash", satu wadah menyimpan beberapa entri, yang harus dicari secara berurutan.
Faktor beban adalah ukuran seberapa penuh tabel hash diizinkan untuk mendapatkan sebelum kapasitasnya ditingkatkan secara otomatis. Parameter kapasitas awal dan faktor beban hanyalah petunjuk untuk implementasi. Detail yang tepat tentang kapan dan apakah metode rehash dipanggil bergantung pada implementasi.
Umumnya, faktor beban default (.75) menawarkan tradeoff yang baik antara biaya waktu dan ruang. Nilai yang lebih tinggi mengurangi overhead ruang tetapi meningkatkan biaya waktu untuk mencari entri (yang tercermin dalam sebagian besar Hashtable operasi, termasuk get dan put).
Kapasitas awal mengontrol tradeoff antara ruang yang terbuang dan kebutuhan akan rehash operasi, yang memakan waktu. Tidak ada rehash operasi yang akan terjadi jika kapasitas awal lebih besar dari jumlah maksimum entri yang Hashtable akan dibagi dengan faktor bebannya. Namun, mengatur kapasitas awal terlalu tinggi dapat membuang-buang ruang.
Jika banyak entri yang akan dibuat menjadi Hashtable, membuatnya dengan kapasitas yang cukup besar dapat memungkinkan entri dimasukkan lebih efisien daripada membiarkannya melakukan pengulangan otomatis sesuai kebutuhan untuk menumbuhkan tabel.
Contoh ini membuat hashtable angka. Ini menggunakan nama angka sebagai kunci:
{@code
Hashtable<String, Integer> numbers
= new Hashtable<String, Integer>();
numbers.put("one", 1);
numbers.put("two", 2);
numbers.put("three", 3);}
Untuk mengambil angka, gunakan kode berikut:
{@code
Integer n = numbers.get("two");
if (n != null) {
System.out.println("two = " + n);
}}
Iterator yang dikembalikan oleh iterator metode koleksi yang dikembalikan oleh semua "metode tampilan koleksi" kelas ini adalah <mereka>fail-fast</em>: jika Hashtable dimodifikasi secara struktural kapan saja setelah iterator dibuat, dengan cara apa pun kecuali melalui metode iterator sendiri remove , iterator akan melemparkan ConcurrentModificationException. Dengan demikian, dalam menghadapi modifikasi bersamaan, iterator gagal dengan cepat dan bersih, daripada berisiko perilaku arbitrer dan non-deterministik pada waktu yang tidak ditentukan di masa depan. Enumerasi yang dikembalikan oleh Hashtable #keys keys dan #elements elements metodenya adalah <em>not</em> fail-fast; jika Hashtable dimodifikasi secara struktural kapan saja setelah enumerasi dibuat, maka hasil enumerasi tidak ditentukan.
Perhatikan bahwa perilaku fail-fast dari iterator tidak dapat dijamin apa adanya, umumnya, tidak mungkin untuk membuat jaminan keras dengan adanya modifikasi bersamaan yang tidak disinkronkan. Iterator fail-fast melempar ConcurrentModificationException berdasarkan upaya terbaik. Oleh karena itu, akan salah untuk menulis program yang bergantung pada pengecualian ini untuk kebenarannya: perilaku iterator yang gagal cepat harus digunakan hanya untuk mendeteksi bug.
Pada platform Java 2 v1.2, kelas ini dipasang ulang untuk mengimplementasikan Map antarmuka, menjadikannya anggota
Java Collections Framework. Tidak seperti implementasi koleksi baru, Hashtable disinkronkan. Jika implementasi thread-safe tidak diperlukan, disarankan untuk digunakan HashMap sebagai pengganti Hashtable. Jika implementasi yang sangat bersamaan aman utas diinginkan, maka disarankan untuk digunakan java.util.concurrent.ConcurrentHashMap sebagai pengganti Hashtable.
Ditambahkan dalam 1.0.
Java dokumentasi untuk java.util.Hashtable.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Konstruktor
| Nama | Deskripsi |
|---|---|
| Hashtable() |
Membangun hashtable baru yang kosong dengan kapasitas awal default (11) dan load factor (0. |
| Hashtable(IDictionary) |
Membuat hashtable baru dengan pemetaan yang sama dengan Peta yang diberikan. |
| Hashtable(Int32, Single) |
Membuat hashtable baru dan kosong dengan kapasitas awal yang ditentukan dan faktor beban yang ditentukan. |
| Hashtable(Int32) |
Membangun hashtable baru yang kosong dengan kapasitas awal yang ditentukan dan faktor beban default (0. |
| Hashtable(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| IsEmpty |
Menguji apakah hashtable ini tidak memetakan kunci ke nilai. |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| JniPeerMembers |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
| ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
Metode
| Nama | Deskripsi |
|---|---|
| Clear() |
Menghapus hashtable ini sehingga tidak berisi kunci. |
| Clone() |
Membuat salinan dangkal dari hashtable ini. |
| Compute(Object, IBiFunction) |
Untuk ditambahkan |
| ComputeIfAbsent(Object, IFunction) |
Untuk ditambahkan |
| ComputeIfPresent(Object, IBiFunction) |
Untuk ditambahkan |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| Contains(Object) |
Menguji apakah beberapa peta kunci ke dalam nilai yang ditentukan dalam hashtable ini. |
| ContainsKey(Object) |
Menguji apakah objek yang ditentukan adalah kunci dalam hashtable ini. |
| ContainsValue(Object) |
Mengembalikan true jika hashtable ini memetakan satu atau beberapa kunci ke nilai ini. |
| Dispose() |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| Dispose(Boolean) |
Merilis sumber daya yang dipegang oleh rekan Java ini. (Diperoleh dari Object) |
| DisposeUnlessReferenced() |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| Elements() |
Mengembalikan enumerasi nilai dalam hashtable ini. |
| EntrySet() |
Mengembalikan |
| Equals(Object) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| ForEach(IBiConsumer) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| Get(Object) |
Mengembalikan nilai yang kunci yang ditentukan dipetakan, atau |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| GetOrDefault(Object, Object) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Keys() |
Mengembalikan enumerasi kunci dalam hashtable ini. |
| KeySet() |
Mengembalikan |
| Merge(Object, Object, IBiFunction) |
Untuk ditambahkan |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| Put(Object, Object) |
Memetakan yang ditentukan |
| PutAll(IDictionary) |
Menyalin semua pemetaan dari peta yang ditentukan ke hashtable ini. |
| PutIfAbsent(Object, Object) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| Rehash() |
Meningkatkan kapasitas dan mengatur ulang hashtable ini secara internal, untuk mengakomodasi dan mengakses entrinya secara lebih efisien. |
| Remove(Object, Object) |
Menghapus kunci (dan nilai yang sesuai) dari hashtable ini. |
| Remove(Object) |
Menghapus kunci (dan nilai yang sesuai) dari hashtable ini. |
| Replace(Object, Object, Object) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| Replace(Object, Object) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| ReplaceAll(IBiFunction) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| Size() |
Mengembalikan jumlah kunci dalam hashtable ini. |
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
| UnregisterFromRuntime() |
Membatalkan pendaftaran peer Java ini dari runtime interop. (Diperoleh dari Object) |
| Values() |
Mengembalikan tampilan nilai yang |
| Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
| Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
| Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IJavaPeerable.Disposed() |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| IJavaPeerable.Finalized() |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. (Diperoleh dari JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Kelas ini mengimplementasikan tabel hash, yang memetakan kunci ke nilai. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |