Notation Big-O pour les implémentations de Java Collections Framework
Comprendre l'ordre des opérations Big-O pour diverses implémentations de Java Collections Framework est crucial lorsque en sélectionnant la structure de données appropriée pour une tâche spécifique.
Liste des implémentations
- ArrayList : O(1) pour get, add, contain et iterator.remove ; O(n) pour supprimer(0)
- LinkedList : O(n) pour obtenir, O(1) pour ajouter, contenir et supprimer(0), O(1) pour iterator.remove
- CopyOnWriteArrayList : O(1) pour obtenir, O(n) pour ajouter, contient et supprimer (0), O(n) pour iterator.remove
Définir les implémentations
- HashSet : O(1) pour ajouter et contient, O(h/n) pour suivant (où h est la capacité de la table)
- LinkedHashSet : O(1) pour toutes les opérations
- CopyOnWriteArraySet : O(n) pour ajouter et contient, O(1) pour suivant
- EnumSet : O(1) pour toutes les opérations
- TreeSet : O (log n) pour toutes les opérations
- ConcurrentSkipListSet : O(log n) pour toutes les opérations
Implémentations de cartes
- HashMap : O(1) pour get et containKey, O(h/n) pour next (où h est la capacité de la table)
- LinkedHashMap : O(1) pour toutes les opérations
- IdentityHashMap : O (1) pour get et containKey, O(h/n) pour next (où h est la capacité de la table)
- EnumMap : O(1) pour toutes les opérations
- TreeMap : O(log n) pour toutes les opérations
- ConcurrentHashMap : O(1) pour get et containKey, O(h/n) pour next (où h est la capacité de la table)
- ConcurrentSkipListMap : O(log n ) pour toutes les opérations
Implémentations de file d'attente
- PriorityQueue : O(log n) pour l'offre et le sondage, O(1) pour l'aperçu et la taille
- ConcurrentLinkedQueue : O(1) pour toutes les opérations
- ArrayBlockingQueue : O(1) pour l'offre, l'aperçu et le sondage, O(1) pour la taille
- LinkedBlockingQueue : O (1) pour l'offre, l'aperçu et le sondage, O(1) pour la taille
- PriorityBlockingQueue : O(log n) pour l'offre et le sondage, O(1) pour l'aperçu et la taille
- DelayQueue : O(log n) pour l'offre et le sondage, O(1) pour l'aperçu et la taille
- LinkedList : O(1) pour toutes les opérations
- ArrayDeque : O(1) pour toutes les opérations
- LinkedBlockingDeque : O(1) pour toutes les opérations
Ressources supplémentaires
Pour un tableau récapitulatif complet et un aperçu annoté de tout le framework Java Collections implémentations, reportez-vous aux ressources suivantes :
- Aperçu des collections : https://docs.oracle.com/javase/tutorial/collections/intro/index.html
- Aperçu annoté : https://docs.oracle.com/javase/7/docs/api/java/util/package-summary.html
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!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn