Bagikan melalui


HashMap Kelas

Definisi

Implementasi berbasis tabel hash antarmuka Map .

[Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public class HashMap : Java.Util.AbstractMap, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ISerializable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/util/HashMap", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type HashMap = class
    inherit AbstractMap
    interface ISerializable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface ICloneable
    interface IMap
Warisan
Turunan
Atribut
Penerapan

Keterangan

Implementasi berbasis tabel hash antarmuka Map . Implementasi ini menyediakan semua operasi peta opsional, dan mengizinkan null nilai dan kunci.null (Kelas HashMap kira-kira setara Hashtabledengan , kecuali tidak disinkronkan dan mengizinkan null.) Kelas ini tidak menjamin urutan peta; secara khusus, tidak menjamin bahwa pesanan akan tetap konstan dari waktu ke waktu.

Implementasi ini memberikan performa waktu konstan untuk operasi dasar (get dan put), dengan asumsi fungsi hash menyebarkan elemen dengan benar di antara wadah. Perulangan atas tampilan koleksi membutuhkan waktu yang sebanding dengan "kapasitas" HashMap instans (jumlah wadah) ditambah ukurannya (jumlah pemetaan nilai kunci). Dengan demikian, sangat penting untuk tidak mengatur kapasitas awal terlalu tinggi (atau faktor beban terlalu rendah) jika performa iterasi penting.

Instans HashMap 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. Faktor beban adalah ukuran seberapa penuh tabel hash diizinkan untuk mendapatkan sebelum kapasitasnya ditingkatkan secara otomatis. Ketika jumlah entri dalam tabel hash melebihi produk faktor beban dan kapasitas saat ini, tabel hash direhash (yaitu, struktur data internal dibangun kembali) sehingga tabel hash memiliki sekitar dua kali jumlah wadah.

Sebagai aturan umum, faktor beban default (.75) menawarkan tradeoff yang baik antara biaya waktu dan ruang. Nilai yang lebih tinggi mengurangi overhead ruang tetapi meningkatkan biaya pencarian (tercermin dalam sebagian besar operasi HashMap kelas, termasuk get dan put). Jumlah entri yang diharapkan dalam peta dan faktor bebannya harus diperhitungkan saat mengatur kapasitas awalnya, sehingga dapat meminimalkan jumlah operasi pengulangan. Jika kapasitas awal lebih besar dari jumlah maksimum entri yang dibagi dengan faktor beban, tidak ada operasi pengulangan yang akan terjadi.

Jika banyak pemetaan yang akan disimpan dalam HashMap instans, membuatnya dengan kapasitas yang cukup besar akan memungkinkan pemetaan disimpan lebih efisien daripada membiarkannya melakukan pengulangan otomatis sesuai kebutuhan untuk menumbuhkan tabel. Perhatikan bahwa menggunakan banyak kunci dengan cara yang sama hashCode() adalah cara yang pasti untuk memperlambat performa tabel hash apa pun. Untuk mengameliorasi dampak, ketika kunci adalah Comparable, kelas ini dapat menggunakan urutan perbandingan di antara kunci untuk membantu memutuskan ikatan.

<kuat>Perhatikan bahwa implementasi ini tidak disinkronkan.</strong> Jika beberapa utas mengakses peta hash secara bersamaan, dan setidaknya salah satu utas memodifikasi peta secara struktural, itu harus disinkronkan secara eksternal. (Modifikasi struktural adalah operasi apa pun yang menambahkan atau menghapus satu atau beberapa pemetaan; hanya mengubah nilai yang terkait dengan kunci yang sudah dikandung instans bukanlah modifikasi struktural.) Ini biasanya dicapai dengan menyinkronkan pada beberapa objek yang secara alami merangkum peta.

Jika tidak ada objek seperti itu, peta harus "dibungkus" menggunakan Collections#synchronizedMap Collections.synchronizedMap metode . Ini paling baik dilakukan pada waktu pembuatan, untuk mencegah akses tidak disengaja yang tidak disinkronkan ke peta:

Map m = Collections.synchronizedMap(new HashMap(...));

Iterator yang dikembalikan oleh semua "metode tampilan koleksi" kelas ini gagal cepat: jika peta 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.

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.

Kelas ini adalah anggota Java Collections Framework.

Ditambahkan dalam 1.2.

Dokumentasi Java untuk java.util.HashMap.

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Konstruktor

HashMap()

Membangun kosong HashMap dengan kapasitas awal default (16) dan faktor beban default (0.

HashMap(IDictionary)

Membangun yang baru HashMap dengan pemetaan yang sama dengan yang ditentukan Map.

HashMap(Int32)

Membangun kosong HashMap dengan kapasitas awal yang ditentukan dan faktor beban default (0.

HashMap(Int32, Single)

Membangun kosong HashMap dengan kapasitas awal dan faktor beban yang ditentukan.

HashMap(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

Properti

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
IsEmpty

Untuk ditambahkan

(Diperoleh dari AbstractMap)
JniIdentityHashCode

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
JniPeerMembers

Implementasi berbasis tabel hash antarmuka Map .

PeerReference

Implementasi berbasis tabel hash antarmuka Map .

(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

Clear()

Untuk ditambahkan

(Diperoleh dari AbstractMap)
Clone()

Mengembalikan salinan dangkal instans ini HashMap : kunci dan nilai itu sendiri tidak dikloning.

Compute(Object, IBiFunction)

Implementasi berbasis tabel hash antarmuka Map .

ComputeIfAbsent(Object, IFunction)

Implementasi berbasis tabel hash antarmuka Map .

ComputeIfPresent(Object, IBiFunction)

Implementasi berbasis tabel hash antarmuka Map .

ContainsKey(Object)

Untuk ditambahkan

(Diperoleh dari AbstractMap)
ContainsValue(Object)

Untuk ditambahkan

(Diperoleh dari AbstractMap)
Dispose()

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
Dispose(Boolean)

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
EntrySet()

Mengembalikan Set tampilan pemetaan yang terkandung dalam peta ini.

Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
ForEach(IBiConsumer)

Implementasi berbasis tabel hash antarmuka Map .

Get(Object)

Untuk ditambahkan

(Diperoleh dari AbstractMap)
GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
GetOrDefault(Object, Object)

Implementasi berbasis tabel hash antarmuka Map .

JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
KeySet()

Untuk ditambahkan

(Diperoleh dari AbstractMap)
Merge(Object, Object, IBiFunction)

Implementasi berbasis tabel hash antarmuka Map .

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)

Untuk ditambahkan

(Diperoleh dari AbstractMap)
PutAll(IDictionary)

Untuk ditambahkan

(Diperoleh dari AbstractMap)
PutIfAbsent(Object, Object)

Implementasi berbasis tabel hash antarmuka Map .

Remove(Object)

Untuk ditambahkan

(Diperoleh dari AbstractMap)
Remove(Object, Object)

Menghapus pemetaan untuk kunci yang ditentukan dari peta ini jika ada.

Replace(Object, Object)

Implementasi berbasis tabel hash antarmuka Map .

Replace(Object, Object, Object)

Implementasi berbasis tabel hash antarmuka Map .

ReplaceAll(IBiFunction)

Implementasi berbasis tabel hash antarmuka Map .

SetHandle(IntPtr, JniHandleOwnership)

Handle Mengatur properti.

(Diperoleh dari Object)
Size()

Untuk ditambahkan

(Diperoleh dari AbstractMap)
ToArray<T>()

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
Values()

Untuk ditambahkan

(Diperoleh dari AbstractMap)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IJavaPeerable.Disposed()

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
IJavaPeerable.DisposeUnlessReferenced()

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
IJavaPeerable.Finalized()

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
IJavaPeerable.JniManagedPeerState

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Implementasi berbasis tabel hash antarmuka Map .

(Diperoleh dari Object)

Metode Ekstensi

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android.

JavaCast<TResult>(IJavaObject)

Implementasi berbasis tabel hash antarmuka Map .

GetJniTypeName(IJavaPeerable)

Implementasi berbasis tabel hash antarmuka Map .

Berlaku untuk