Interface de collecte: la collection est l'interface de collection la plus élémentaire, déclarant des méthodes communes adaptées aux collections Java (y compris uniquement et liste). Définir et énumérer à la fois la connexion et la carte
Méthodes d'interface de collecte:
booléen add (objet o): ajouter une référence à un objet à la collection
void Clear (): Supprimer tous les objets de la collection, c'est-à-dire ne plus tenir des références à ces objets
booléen iSempty (): détermine si l'ensemble est vide
booléen contient (objet O): détermine si une référence à un objet spécifique est maintenue dans la collection
Iterar Iterator (): Renvoie un objet Iterator qui peut être utilisé pour itérer les éléments d'une collection
Booléen Retirant (objet O): supprime une référence à un objet de la collection
int size (): renvoie le nombre d'éléments dans la collection
Objet [] toArray (): Renvoie un tableau contenant tous les éléments de la collection
À propos: Les méthodes Iterator () et ToArray () sont utilisées pour tous les éléments d'une collection. Le premier renvoie un objet Iterator, et le second renvoie un tableau contenant tous les éléments de la collection.
L'interface itérateur déclare les méthodes suivantes:
Hasnext (): détermine si les éléments de la collection ont été traversés. Sinon, retournez vrai
Next (): Renvoyez l'élément suivant
retirer (): supprimer l'élément précédent renvoyé par la méthode suivante () de la collection.
Set (set): Set est le type de collection le plus simple. Les objets de la collection ne sont pas triés de manière spécifique et il n'y a pas d'objets en double. L'interface définie implémente principalement deux classes d'implémentation:
HashSet: La classe HashSet utilise l'algorithme de hash pour accéder aux objets dans la collection, et la vitesse d'accès est relativement rapide.
Treeset: La classe Treeset implémente l'interface tridset, qui peut trier les objets dans la collection.
Utilisation de l'ensemble: il stocke les références aux objets, pas d'objets en double
Set set = new HashSet (); String S1 = new String ("Hello"); String S2 = S1; String S3 = new String ("World"); set.add (s1); set.add (s2); set.add (s3); System.out.println (set.size ()); // Le nombre d'objets dans la collection d'impression est 2.
Comment la méthode Add () de SET détermine-t-elle si l'objet a été stocké dans la collection?
booléen isExists = false; iterator iterator = set.iterator (); while (it.hasnext ()) {string oldstr = it.next (); if (newtr.equals (oldstr)) {isExists = true;}}LISTE: La caractéristique d'une liste est que ses éléments sont stockés de manière linéaire, et les objets en double peuvent être stockés dans la collection.
Les principales classes d'implémentation de l'interface de liste comprennent:
ArrayList (): représente que la longueur peut être changée en un tableau. Les éléments sont accessibles au hasard et la vitesse d'insertion et de suppression des éléments dans ArrayList () est lente.
LinkedList (): utilise une structure de données de liste liée dans l'implémentation. Insertion rapide et suppression, accès lent.
Pour l'accès aléatoire de la liste, il ne s'agit que de ne récupérer que des éléments au hasard situés à un emplacement spécifique. La méthode GET (int index) de liste est remise dans l'objet dans la collection en position d'index spécifiée par l'indice de paramètre, et l'indice commence à partir de "0". Les deux façons les plus élémentaires de récupérer tous les objets d'une collection:
1: pour la méthode Loop and Get ():
for (int i = 0; i <list.size (); i ++) {System.out.println (list.get (i));}2: Utilisez itérateur:
Iterator it = list.iterator (); while (it.hashNext) {System.out.println (it.next);}
MAP: MAP est une collection d'objets clés de carte et d'objets de valeur. Chaque élément de celui-ci contient une paire d'objets clés et des objets de valeur.
Lorsqu'une carte n'est pas héritée de l'interface de collecte, chaque fois qu'un objet clé est donné, l'objet de valeur correspondant sera renvoyé.
Méthodes courantes pour la carte:
1 Ajouter et supprimer les opérations:
Put objet (clé d'objet, valeur de l'objet): ajouter des éléments à la collection
Objet Supprimer (clé d'objet): supprime les éléments liés à la clé
void putall (map t): ajoute tous les éléments d'une image spécifique à l'image
void clear (): supprimer toutes les cartes de l'image
2 opérations de requête:
Object Get (touche Object): Obtenez la valeur liée à la clé de mot-clé. Les objets clés de la collection de cartes ne peuvent pas être répétés, c'est-à-dire que le résultat de deux objets clés comparés par la méthode equals () est faux. Cependant, toutes les touches multiples peuvent être mappées exclusivement dans le même objet de valeur.
Connexions: classe d'utilité de collecte. Les connexions fournissent des méthodes statiques pratiques pour les collections Java
Résumer:
L'utilisation de base des collections Java a été résumé. Ce qui précède est les collections Java les plus couramment utilisées. Pour plus de détails, veuillez consulter le document d'aide JDK. Haha, il y a beaucoup plus d'applications de la carte, et c'est celle-ci. Les connexions fournissent de nombreuses méthodes pratiques pour la liste / la carte, ce qui est très utile pour le développement quotidien.
booléen contientyy (clé d'objet): détermine s'il existe une clé de mot-clé dans l'image
booléen contient VALALUE (valeur de l'objet): détermine s'il y a une valeur dans l'image
int size (): renvoie le nombre de cartes dans l'image actuelle
booléen iSempty (): détermine s'il y a une cartographie dans l'image
La liste enregistre les objets dans l'ordre dans lequel les objets entrent, sans les opérations de tri ou d'édition. Set n'accepte qu'une seule fois pour chaque objet et utilise sa propre méthode de tri interne (généralement, vous vous souciez seulement de savoir si un élément appartient à Set, pas sa commande - sinon vous devriez utiliser la liste).
MAP enregistre également une copie de chaque élément, mais cela est basé sur "Key" et MAP a également un tri intégré, il ne se soucie donc pas de l'ordre dans lequel les éléments sont ajoutés. Si la commande dans laquelle des éléments est ajoutée est importante pour vous, vous devez utiliser LinkedHashSet ou LinkedHashmap.
Méthode de la fonction de liste:
Il existe en fait deux types: l'un est le ArrayList de base, qui a l'avantage d'un accès aléatoire aux éléments, et l'autre est la liste liée plus puissante, qui n'est pas conçue pour un accès aléatoire rapide, mais a un ensemble de méthodes plus général.
Liste: l'ordre est la caractéristique la plus importante de la liste: il garantit que l'ordre spécifique des éléments est maintenu. La liste ajoute de nombreuses méthodes à la collection, permettant l'insertion et la suppression des éléments au milieu de la liste (ceci n'est recommandé que pour LinkedList.) Une liste peut générer un listiterator, qui peut l'utiliser pour traverser la liste à partir de deux directions, ou insérer et supprimer des éléments du milieu de la liste.
ArrayList: liste implémentée par Array. Permet un accès aléatoire rapide aux éléments, mais l'insertion et la suppression des éléments au milieu de la liste sont lents. ListeTiterator ne doit être utilisé que pour itérer via la liste Array de l'arrière vers l'avant, plutôt que d'insérer et de supprimer les éléments. Parce que c'est beaucoup plus cher que LinkedList.
LinkedList: l'accès séquentiel est optimisé, et les frais généraux de l'insertion et de la suppression au milieu de la liste ne sont pas très élevés. L'accès aléatoire est relativement lent. (Utilisez ArrayList à la place.) Ont également les méthodes suivantes: addFirst (), addLast (), getFirst (), getLast (), re SuppterFirst () et Removelast (). Ces méthodes (non définies dans une interface ou une classe de base) font utiliser LinkedList comme une file d'attente, la file d'attente et la file d'attente bidirectionnelle.
Méthode de fonction de set:
Set a exactement la même interface que la collection, il n'y a donc pas de fonctionnalité supplémentaire, contrairement à deux listes différentes devant. En fait, Set est une collection, mais le comportement est différent. (Il s'agit d'une application typique de l'héritage et de la pensée polymorphe: effectuer des comportements différents.) L'ensemble n'économise pas des éléments en double (quant à la façon de juger que les éléments sont les mêmes, c'est plus responsable)
Ensemble: chaque élément stocké dans l'ensemble doit être unique car l'ensemble n'enregistre pas les éléments en double. L'élément ajouté à l'ensemble doit définir la méthode equals () pour assurer l'unicité de l'objet. Set a exactement la même interface que la collection. L'interface définie ne garantit pas l'ordre des éléments de maintenance.
Hashset: Défini conçu pour une recherche rapide. L'objet stocké dans le Hashset doit définir HashCode ().
Treeset: réglé dans l'ordre de sauvegarde, la couche sous-jacente est une structure d'arbres. Utilisez-le pour extraire les séquences ordonnées de SET.
LinkedHashSet: a la vitesse de requête de HashSet et utilise en interne la liste liée pour maintenir l'ordre des éléments (ordre d'insertion). Ainsi, lorsque vous utilisez un itérateur pour traverser l'ensemble, les résultats seront affichés dans l'ordre dans lequel les éléments sont insérés.
Méthode de la fonction de la carte:
La méthode put (clé d'objet, valeur objet) ajoute une "valeur" (veulent quelque chose) et une "clé" associée à "valeur" (l'utilisation pour trouver). La méthode get (clé objet) renvoie la "valeur" associée à la "clé" donnée. Vous pouvez utiliser CONTAINSKEY () et CONTAINSVALUE () pour tester si une "clé" ou "valeur" est incluse dans la carte.
La bibliothèque de classe Java standard contient plusieurs cartes différentes: Hashmap, Treemap, LinkedHashmap, WaibhashMap, IdentityHashMap. Ils ont tous la même carte d'interface de base, mais leur comportement, leur efficacité, leurs stratégies de tri, la sauvegarde du cycle de vie des objets et la détermination de l'équivalent des "clés".
L'efficacité de l'exécution est un gros problème avec la carte. Si vous regardez ce que GET () va faire, vous comprendrez pourquoi la recherche de "clé" dans ArrayList est assez lente. Et c'est là que Hashmap accélère. Hashmap utilise une valeur spéciale appelée code de hachage pour remplacer les recherches lentes des clés.
"Has Code" est "relativement unique" pour représenter la valeur int d'un objet, et il est généré en convertissant certaines informations de l'objet. Tous les objets Java peuvent générer des codes de hachage car HashCode () est une méthode définie dans l'objet de classe de base.
Hashmap utilise le HashCode () de l'objet pour la requête rapide. Cette méthode peut améliorer considérablement les performances.
MAP: maintient la corrélation des "paires de valeurs clés" afin que vous puissiez trouver des "valeurs" via "clés"
Hashmap: MAP est basé sur l'implémentation de la table de hachage. Les frais généraux de l'insertion et de l'interrogation de "paires de valeurs clés" sont fixes. La capacité de capacité et le facteur de charge de charge peuvent être définis à travers le constructeur pour ajuster les performances du conteneur.
LinkedHashMap: similaire à Hashmap, mais lors de son itérare, l'ordre dans lequel la "paire de valeurs clés" est son ordre d'insertion, ou l'ordre des moins récemment utilisés (LRU). Seulement un peu plus lent que Hashmap. Il est plus rapide à envoyer lorsqu'il est accessible en itérative car il utilise des listes liées pour maintenir l'ordre interne.
Treemap: implémentation basée sur la structure des données des arbres rouges et noires. Lorsque vous regardez "clé" ou "paires de valeurs clés", elles sont triées (l'ordre est déterminé par comparaison ou comparateur). Treemap se caractérise par le fait que les résultats que vous obtenez sont triés. Treemap est la seule carte avec la méthode subap (), qui peut renvoyer un sous-arbre.
FaiblehashMap: carte clé faible, les objets utilisés dans la carte sont également autorisés à être libérés: il est conçu pour résoudre des problèmes particuliers. Si aucune référence en dehors de la carte ne pointe vers une "clé", cette "clé" peut être recyclée par le collecteur des ordures.
Identifierhashmap: use == au lieu d'égal () pour comparer les "clés". Conçu spécifiquement pour résoudre des problèmes particuliers.