Que sont les conteneurs Java ? (Apprentissage recommandé : Questions du test commun Java )
Quelle est la différence entre ?
Quelle est la différence entre List, Set et Map ?
Quelle est la différence entre HashMap et Hashtable ?
Comment décider d'utiliser HashMap ou TreeMap ?
Pour les opérations telles que l'insertion, la suppression et le positionnement d'éléments dans Map, HashMap est le meilleur choix. Cependant, si vous devez parcourir une collection ordonnée de clés, TreeMap est un meilleur choix. En fonction de la taille de votre collection, il peut être plus rapide d'ajouter des éléments à un HashMap et de remplacer la carte par un TreeMap pour un parcours ordonné des clés.Parlez-moi du principe de mise en œuvre de HashMap ?
Présentation de HashMap : HashMap est une implémentation asynchrone de l'interface Map basée sur des tables de hachage. Cette implémentation fournit toutes les opérations de mappage facultatives et autorise les valeurs nulles et les clés nulles. Cette classe ne garantit pas l'ordre du mappage, et en particulier elle ne garantit pas que l'ordre soit immuable. Structure de données HashMap : dans le langage de programmation Java, il existe deux structures de base, l'une est un tableau et l'autre est un pointeur simulé (référence). Toutes les structures de données peuvent utiliser ces deux structures de base. construction, HashMap ne fait pas exception. HashMap est en fait une structure de données de « hachage de liste chaînée », qui est une combinaison d'un tableau et d'une liste chaînée. Lorsque nous mettons un élément dans le Hashmap, nous recalculons d'abord la valeur de hachage en fonction du code de hachage de la clé, et obtenons la position (indice) de l'élément dans le tableau en fonction de la valeur de hachage. Le tableau est déjà stocké à cette position. Si d'autres éléments sont ajoutés, les éléments à cette position seront stockés sous la forme d'une liste chaînée. Les éléments nouvellement ajoutés seront placés en tête de la chaîne et les premiers éléments ajoutés le seront. placé à la fin de la chaîne. S'il n'y a aucun élément à cette position dans le tableau, l'élément sera directement placé dans la liste chaînée à cette position dans le tableau. Il convient de noter que l'implémentation de HashMap a été optimisée dans Jdk 1.8. Lorsque les données de nœud dans la liste chaînée dépassent huit, la liste chaînée sera convertie en un arbre rouge-noir pour améliorer l'efficacité des requêtes. de l'original O(n) à O(logn), parlez du principe de mise en œuvre de HashSet ?
La couche inférieure de HashSet est implémentée par HashMapLa valeur de HashSet est stockée dans la clé de HashMapLa valeur de HashMap est unifiée comme PRESENTQuelle est la différence entre ArrayList et LinkedList ?
La différence la plus évidente est que la structure de données sous-jacente d'ArrrayList est un tableau et prend en charge l'accès aléatoire, tandis que la structure de données sous-jacente de LinkedList est une liste chaînée circulaire bidirectionnelle et ne prend pas en charge l'accès aléatoire. . Pour accéder à un élément à l'aide d'un indice, la complexité temporelle de ArrayList est O(1), tandis que celle de LinkedList est O(n).Comment convertir entre tableau et liste ?
Convertir la liste en tableau : appelez la méthode toArray d'ArrayList. Convertir un tableau en Liste : appelez la méthode asList de Arrays.Quelle est la différence entre ArrayList et Vector ?
Vector est synchronisé, mais ArrayList ne l'est pas. Cependant, si vous souhaitez apporter des modifications à la liste lors d'une itération, vous devez utiliser CopyOnWriteArrayList. ArrayList est plus rapide que Vector car il est synchronisé et ne sera pas surchargé. ArrayList est plus polyvalent car nous pouvons facilement obtenir des listes synchronisées et des listes en lecture seule à l'aide de la classe utilitaire Collections.Quelle est la différence entre Array et ArrayList ?
Quelle est la différence entre poll() et remove() dans la file d'attente ?
Poll() et Remove() suppriment tous deux un élément de la file d'attente, mais poll() retournera vide s'il ne parvient pas à obtenir l'élément, mais Remove() lèvera une exception lorsqu'il échoue.Quelles classes de collection sont thread-safe ?
vecteur : Il dispose d'un mécanisme de synchronisation de plus (sécurité des threads) que arraylist. En raison de sa faible efficacité, son utilisation n'est plus recommandée. Dans les applications Web, en particulier les pages frontales, l'efficacité (vitesse de réponse des pages) est souvent une priorité.
statck : classe de pile, premier entré, dernier sorti.
hashtable : elle est plus thread-safe que hashmap.
énumération : Énumération, équivalent à l'itérateur.
Qu'est-ce qu'un itérateur ?
Un itérateur est un modèle de conception qui est un objet qui parcourt et sélectionne des objets dans une séquence sans que le développeur ait besoin de connaître la structure sous-jacente de la séquence. Les itérateurs sont souvent appelés objets « légers » car ils sont peu coûteux à créer.
Comment utiliser Iterator ? Quelles sont les caractéristiques ?
La fonction Iterator en Java est relativement simple et ne peut se déplacer que dans une seule direction :
(1) Utilisez la méthode iterator() pour demander au conteneur de renvoyer un Itérateur. La première fois que la méthode next() de l’Iterator est appelée, elle renvoie le premier élément de la séquence. Remarque : la méthode iterator() est l'interface java.lang.Iterable et est héritée par Collection.
(2) Utilisez next() pour obtenir l'élément suivant de la séquence.
(3) Utilisez hasNext() pour vérifier s'il y a encore des éléments dans la séquence.
(4) Utilisez Remove() pour supprimer l'élément nouvellement renvoyé par l'itérateur.
Iterator est l'implémentation la plus simple de l'itérateur Java. ListIterator conçu pour List a plus de fonctions. Il peut parcourir List dans deux directions et peut également insérer et supprimer des éléments de List.
Quelle est la différence entre Iterator et ListIterator ?
Iterator peut être utilisé pour parcourir les collections Set et List, mais ListIterator ne peut être utilisé que pour parcourir List.
Iterator ne peut parcourir une collection que vers l'avant, tandis que ListIterator peut parcourir à la fois vers l'avant et vers l'arrière.
ListIterator implémente l'interface Iterator et inclut d'autres fonctions, telles que l'ajout d'éléments, le remplacement d'éléments, l'obtention de l'index des éléments précédents et suivants, etc.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!