Condividi tramite


IMap Interfaccia

Definizione

Oggetto che esegue il mapping delle chiavi ai valori.

[Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public interface IMap : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/Map", "", "Java.Util.IMapInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
type IMap = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Derivato
Attributi
Implementazioni

Commenti

Oggetto che esegue il mapping delle chiavi ai valori. Una mappa non può contenere chiavi duplicate; ogni chiave può eseguire il mapping al massimo di un valore.

Questa interfaccia ha il posto della Dictionary classe , che era una classe totalmente astratta anziché un'interfaccia.

L'interfaccia Map fornisce tre visualizzazioni raccolta, che consentono di visualizzare il contenuto di una mappa come un set di chiavi, una raccolta di valori o un set di mapping chiave-valore. L'ordine di una mappa viene definito come l'ordine in cui gli iteratori nelle visualizzazioni della raccolta della mappa restituiscono i relativi elementi. Alcune implementazioni della mappa, ad esempio la TreeMap classe , fanno garanzie specifiche per il loro ordine; altre, come la HashMap classe , non .

Nota: è necessario prestare molta attenzione se gli oggetti modificabili vengono usati come chiavi della mappa. Il comportamento di una mappa non viene specificato se il valore di un oggetto viene modificato in modo che influisca sui equals confronti mentre l'oggetto è una chiave nella mappa. Un caso particolare di questo divieto è che non è consentito che una mappa contenga se stessa come chiave. Sebbene sia consentito che una mappa contenga se stessa come valore, è consigliabile prestare estrema cautela: i equals metodi e hashCode non sono più ben definiti su tale mappa.

Tutte le classi di implementazione della mappa per utilizzo generico devono fornire due costruttori "standard": un costruttore void (nessun argomento) che crea una mappa vuota e un costruttore con un singolo argomento di tipo Map, che crea una nuova mappa con gli stessi mapping chiave-valore del relativo argomento. In effetti, quest'ultimo costruttore consente all'utente di copiare qualsiasi mappa, generando una mappa equivalente della classe desiderata. Non è possibile applicare questa raccomandazione (poiché le interfacce non possono contenere costruttori), ma tutte le implementazioni di mapping per utilizzo generico nel JDK sono conformi.

I metodi "distruttivi" contenuti in questa interfaccia, ovvero i metodi che modificano la mappa su cui operano, vengono specificati per generare UnsupportedOperationException se questa mappa non supporta l'operazione. In questo caso, questi metodi possono, ma non sono necessari, generare un'eccezione UnsupportedOperationException se la chiamata non avrà alcun effetto sulla mappa. Ad esempio, richiamare il #putAll(Map) metodo su una mappa non modificabile, ma non è necessario, generare l'eccezione se la mappa i cui mapping devono essere "sovrapposti" è vuota.

Alcune implementazioni della mappa hanno restrizioni per le chiavi e i valori che possono contenere. Ad esempio, alcune implementazioni impediscono chiavi e valori Null e alcune hanno restrizioni sui tipi delle relative chiavi. Se si tenta di inserire una chiave o un valore non idoneo, viene generata un'eccezione non selezionata, in genere NullPointerException o ClassCastException. Il tentativo di eseguire una query sulla presenza di una chiave o di un valore non idoneo può generare un'eccezione oppure può semplicemente restituire false; alcune implementazioni mostreranno il comportamento precedente e alcune mostreranno quest'ultima. In generale, il tentativo di un'operazione su una chiave o un valore non idoneo il cui completamento non genera l'inserimento di un elemento non idoneo nella mappa può generare un'eccezione o può avere esito positivo, all'opzione dell'implementazione. Tali eccezioni vengono contrassegnate come "facoltative" nella specifica per questa interfaccia.

Molti metodi nelle interfacce di Collections Framework sono definiti in termini di Object#equals(Object) equals metodo. Ad esempio, la specifica per il #containsKey(Object) containsKey(Object key) metodo indica: "restituisce true se e solo se questa mappa contiene un mapping per una chiave k in modo che (key==null ? k==null : key.equals(k))". Questa specifica non deve essere interpretata per implicare che la chiamata Map.containsKey con un argomento key non Null provocherà key.equals(k) la chiamata a qualsiasi chiave k. Le implementazioni sono libere di implementare ottimizzazioni in base alla quale la equals chiamata viene evitata, ad esempio confrontando prima i codici hash delle due chiavi. La Object#hashCode() specifica garantisce che due oggetti con codici hash diversi non possano essere uguali. In generale, le implementazioni delle varie interfacce di Collections Framework sono libere di sfruttare il comportamento specificato dei metodi sottostanti Object ovunque l'implementatore lo consideri appropriato.

Alcune operazioni di mapping che eseguono attraversamento ricorsivo della mappa potrebbero non riuscire con un'eccezione per le istanze autoferenziale in cui la mappa contiene direttamente o indirettamente. Sono inclusi i clone()metodi , hashCode()equals()e toString() . Le implementazioni possono facoltativamente gestire lo scenario autoferenziale, ma la maggior parte delle implementazioni correnti non lo fa.

<h2>"unmodifiable">Unmodifiable Maps</h2>

I Map#of() Map.ofmetodi , Map#ofEntries(Map.Entry...) Map.ofEntriese Map#copyOf Map.copyOf static factory offrono un modo pratico per creare mappe non modificabili. Le Map istanze create da questi metodi hanno le caratteristiche seguenti:

<ul>li Sono imodifiable</i>>.<>< Non è possibile aggiungere chiavi e valori, rimuovere o aggiornare. La chiamata di qualsiasi metodo mutator sulla mappa causerà UnsupportedOperationException sempre la creazione di un metodo mutator. Tuttavia, se le chiavi o i valori contenuti sono se stessi modificabili, può causare il comportamento incoerente della mappa o il relativo contenuto. <li>Non consentono null chiavi e valori. Tenta di crearli con null chiavi o valori comportano NullPointerException. <li>Sono serializzabili se tutte le chiavi e i valori sono serializzabili. <li Rifiutano>chiavi duplicate in fase di creazione. Le chiavi duplicate passate a un metodo factory statico generano IllegalArgumentException. <li>L'ordine di iterazione dei mapping non è specificato ed è soggetto a modifiche. <li>Sono basati su valori. I programmatori devono considerare le istanze #equals(Object) uguali a quelli intercambiabili e non devono usarle per la sincronizzazione o il comportamento imprevedibile può verificarsi. Ad esempio, in una versione futura, la sincronizzazione potrebbe non riuscire. I chiamanti non devono prendere presupposti sull'identità delle istanze restituite. Le factory sono gratuite per creare nuove istanze o riutilizzare quelle esistenti. <li>Vengono serializzati come specificato nella pagina Modulo serializzato . </ul>

Questa interfaccia è un membro di Java Collections Framework.

Aggiunto nella versione 1.2.

Documentazione Java per java.util.Map.

Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .

Proprietà

Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
IsEmpty

Restituisce un valore che indica se la mappa è vuota.

JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto Java di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)

Metodi

Clear()

Rimuove tutti i mapping da questa mappa (operazione facoltativa).

Compute(Object, IBiFunction)

Tenta di calcolare un mapping per la chiave specificata e il relativo valore mappato corrente (o null se non è presente alcun mapping corrente).

ComputeIfAbsent(Object, IFunction)

Se la chiave specificata non è già associata a un valore (o è mappata a null), tenta di calcolare il valore usando la funzione di mapping specificata e la immette in questa mappa a meno che nullnon .

ComputeIfPresent(Object, IBiFunction)

Se il valore per la chiave specificata è presente e non Null, tenta di calcolare un nuovo mapping in base alla chiave e al relativo valore mappato corrente.

ContainsKey(Object)

Restituisce true se la mappa contiene un mapping per la chiave specificata.

ContainsValue(Object)

Restituisce true se la mappa esegue il mapping di una o più chiavi al valore specificato.

CopyOf(IDictionary)

Restituisce una mappa non modificabile contenente le voci della mappa specificata.

Disposed()

Chiamato quando l'istanza è stata eliminata.

(Ereditato da IJavaPeerable)
DisposeUnlessReferenced()

Se non sono presenti riferimenti in sospeso a questa istanza, chiama Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Entry(Object, Object)

Restituisce un valore non modificabile Entry contenente la chiave e il valore specificati.

EntrySet()

Restituisce una Set visualizzazione dei mapping contenuti in questa mappa.

Equals(Object)

Confronta l'oggetto specificato con questa mappa per verificarne l'uguaglianza.

Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
ForEach(IBiConsumer)

Esegue l'azione specificata per ogni voce della mappa fino a quando tutte le voci non vengono elaborate o l'azione genera un'eccezione.

Get(Object)

Restituisce il valore a cui viene mappato la chiave specificata oppure null se la mappa non contiene alcun mapping per la chiave.

GetHashCode()

Restituisce il valore del codice hash per questa mappa.

GetOrDefault(Object, Object)

Restituisce il valore a cui viene mappato la chiave specificata oppure defaultValue se la mappa non contiene alcun mapping per la chiave.

KeySet()

Restituisce una Set visualizzazione delle chiavi contenute in questa mappa.

Merge(Object, Object, IBiFunction)

Se la chiave specificata non è già associata a un valore o è associata a Null, la associa al valore non Null specificato.

Of()

Restituisce una mappa non modificabile contenente mapping zero.

Of(Object, Object)

Restituisce una mappa non modificabile contenente un singolo mapping.

Of(Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente due mapping.

Of(Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente tre mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente quattro mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente cinque mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente sei mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente sette mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente otto mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente nove mapping.

Of(Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object)

Restituisce una mappa non modificabile contenente dieci mapping.

OfEntries(IMapEntry[])

Restituisce una mappa non modificabile contenente chiavi e valori estratti dalle voci indicate.

Put(Object, Object)

Associa il valore specificato alla chiave specificata in questa mappa (operazione facoltativa).

PutAll(IDictionary)

Copia tutti i mapping dalla mappa specificata a questa mappa (operazione facoltativa).

PutIfAbsent(Object, Object)

Se la chiave specificata non è già associata a un valore (o è mappata a null) la associa al valore specificato e restituisce null, altrimenti restituisce il valore corrente.

Remove(Object)

Rimuove il mapping per una chiave da questa mappa, se presente (operazione facoltativa).

Remove(Object, Object)

Rimuove la voce per la chiave specificata solo se è attualmente mappata al valore specificato.

Replace(Object, Object)

Sostituisce la voce per la chiave specificata solo se è attualmente mappata a un valore.

Replace(Object, Object, Object)

Sostituisce la voce per la chiave specificata solo se è attualmente mappato al valore specificato.

ReplaceAll(IBiFunction)

Sostituisce il valore di ogni voce con il risultato di richiamare la funzione specificata su tale voce fino a quando tutte le voci non vengono elaborate o la funzione genera un'eccezione.

SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Oggetto che esegue il mapping delle chiavi ai valori.

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
Size()

Restituisce il numero di mapping chiave-valore in questa mappa.

UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)
Values()

Restituisce una Collection visualizzazione dei valori contenuti in questa mappa.

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo verificato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Oggetto che esegue il mapping delle chiavi ai valori.

GetJniTypeName(IJavaPeerable)

Oggetto che esegue il mapping delle chiavi ai valori.

Si applica a