Introduction de la carte
Carte la clé de l'objet de la valeur. Une carte ne peut pas contenir des clés en double; Chaque touche ne peut que mapper à une seule valeur au maximum. Cette interface remplace la classe de dictionnaire, qui est entièrement une classe abstraite, pas une interface.
L'interface de carte offre trois vues de collecte qui permettent de visualiser le contenu d'une carte sous la forme d'un ensemble de clés, d'un ensemble de valeur ou d'un ensemble de relations de mappage de valeurs de clé. L'ordre de mappage est défini comme l'ordre dans lequel l'itérateur renvoie ses éléments sur la vue de collection de la carte. Certaines implémentations de cartographie garantissent explicitement leur commande, comme la classe Treemap; D'autres ne garantissent pas leur commande, comme la classe Hashmap.
Remarque: Des soins supplémentaires doivent être pris en utilisant des objets mutables comme clés de mappage. Lorsqu'un objet est une clé d'une carte, si la valeur de l'objet est modifiée d'une manière qui affecte la comparaison égale, le comportement de la carte sera incertain. Un cas particulier selon lequel cela interdit est qu'une carte ne se permet pas incluse comme clé. Bien qu'une carte soit autorisée à s'inclure en valeur, soyez prudent: la définition des méthodes Equals et HashCode ne sera plus explicite sur de telles cartes.
Toutes les classes d'implémentation de mappage communes doivent fournir deux constructeurs "standard": un constructeur void (pas de paramètre) pour créer des cartes vides; et un constructeur avec un seul paramètre de type de carte pour créer une nouvelle carte avec la même relation de mappage de valeurs de clé que ses paramètres. En fait, ce dernier constructeur permet à l'utilisateur de copier des cartes arbitraires pour générer une carte équivalente de la classe requise. Bien que cette suggestion ne puisse pas être appliquée (car l'interface ne peut pas contenir de constructeurs), toutes les implémentations de mappage courantes dans le JDK le suivent.
Les méthodes «destruments» contenues dans cette interface modifient le mappage de ses opérations, et si ce mappage ne prend pas en charge l'opération, ces méthodes jetteront une conception non soutenue de l'Opération. Si c'est le cas, ces méthodes peuvent (mais ne nécessitent pas) de lancer une conception non étayée lorsque l'appel n'est pas valide pour la cartographie. Par exemple, si une carte non modifiée dont la relation de cartographie est "qui se chevauche" est vide, une exception peut être lancée (mais non requise) lors de l'appel de la méthode Putall (carte) sur la carte.
Certaines implémentations de cartographie ont des limites aux clés et aux valeurs qui peuvent être incluses. Par exemple, certaines implémentations interdisent les clés et les valeurs nulles, d'autres ont des restrictions sur le type de leurs clés. Tenter d'insérer une clé ou une valeur non qualifiée lancera une exception non contrôlée, généralement une nulpointerException ou ClassCastException. Tenter de demander si une clé ou une valeur non qualifiée peut lancer une exception ou retourner faux; Certaines implémentations présenteront le premier comportement, tandis que d'autres présenteront ce dernier. D'une manière générale, lorsque vous tentez d'effectuer une opération sur une clé ou une valeur non qualifiée et l'achèvement de l'opération n'entraîne pas un élément non qualifié inséré dans la carte, une exception peut être lancée ou l'opération peut être réussie, en fonction de l'implémentation elle-même. Ces exceptions sont marquées "facultatives" dans la spécification de cette interface.
Cette interface est membre du cadre Java Collections.
De nombreuses méthodes dans l'interface du cadre de collections sont définies selon la méthode Equals. Par exemple, la spécification de la méthode CONTAINSKEY (clé d'objet) indique: "Retour True If et seulement si cette carte contient une relation de mappage pour Key K qui satisfait (key == null? K == Null: Key.equals (k)). Cette spécification ne doit pas être interprétée. Les appels par exemple.
Instructions de fonctionnement communes void clear ()
Supprimez toutes les relations de cartographie de cette carte (action facultative).
booléen contienty (clé d'objet)
Renvoie True si cette carte contient une relation de mappage pour la clé spécifiée.
booléen contient VALALUE (valeur de l'objet)
Renvoie True si cette carte mappe une ou plusieurs clés de la valeur spécifiée.
Set <map.entry <k, v >> entryset ()
Renvoie la vue définie des relations de mappage contenues dans cette carte.
booléen égaux (objet o)
Comparez si l'objet spécifié est égal à cette carte.
V get (clé d'objet)
Renvoie la valeur mappée par la clé spécifiée; Si cette carte ne contient pas la relation de cartographie de la clé, renvoyez NULL.
int hashcode ()
Renvoie la valeur du code de hachage pour cette carte.
booléen iSempty ()
Retour True si cette carte ne contient pas de relation de mappage de valeurs clés.
Set <k> keyset ()
Renvoie la vue définie des clés contenues dans cette carte.
V put (clé k, valeur v)
Associez la valeur spécifiée à la touche spécifiée dans cette carte (action facultative).
void putall (map <? étend k ,? étend v> m)
Copiez toutes les relations de mappage à partir du mappage spécifié dans cette carte (action facultative).
V Suppression (touche d'objet)
S'il existe une relation de mappage pour une clé, elle est supprimée de cette carte (facultative).
int size ()
Renvoie la relation de cartographie des valeurs clés dans cette carte.
Collection <v> valeurs ()
Renvoie la vue de collecte des valeurs contenues dans cette carte.
Utilisation générale de la carte
1. Déclarer une carte:
La copie de code est la suivante:
Map map = new HashMap ();
2. Mettez la valeur dans la carte. Remarque: la carte est stockée sous la forme d'une valeur clé, telle que:
La copie de code est la suivante:
map.put ("sa", "dd");
3. Prenez la valeur de la carte:
La copie de code est la suivante:
String str = map.get ("sa"). ToString,
Le résultat est: str = "dd '
4. Ilétèrent une carte et obtenez la clé et la valeur de celle-ci:
La copie de code est la suivante:
Map m = new hashmap ();
pour (objet obj: map.keyset ()) {
Valeur d'objet = map.get (obj);
}