Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Maîtriser les Collections Java : Guide complet des structures de données efficaces

Avant Java 2, Java fournissait des classes ad hoc (Dictionary, Vector, Stack, Properties) pour stocker/manipuler des groupes d'objets. Utiles mais sans thème unificateur central.

Le Collections Framework a été conçu pour :

Architecture unifiée autour d'interfaces standards. Implémentations fournies (LinkedList, HashSet, TreeSet, etc.) utilisables telles quelles ou personnalisables.

Un framework de collections contient :

Le framework définit aussi des interfaces/classes Map (paires clé/valeur). Bien que non "collections" au sens strict, elles sont pleinement intégrées.

Interfaces de collection

InterfaceDescription
CollectionRacine de la hiérarchie. Groupes d'objets.
ListÉtend Collection. Collection ordonnée, doublons autorisés.
SetÉtend Collection. Ensemble sans doublons.
SortedSetÉtend Set. Ensemble trié.
MapAssocie clés uniques à valeurs.
Map.EntryÉlément (paire clé/valeur) dans une Map. Classe interne.
SortedMapÉtend Map. Clés maintenues triées.
EnumerationLegacy. Remplacée par Iterator.

Classes de collection standards

ClasseDescription
AbstractCollectionImplémente la plupart de Collection
AbstractListÉtend AbstractCollection, implémente List
AbstractSequentialListPour accès séquentiel (vs aléatoire)
LinkedListListe chaînée (extends AbstractSequentialList)
ArrayListTableau dynamique (extends AbstractList)
AbstractSetImplémente Set
HashSetSet basé sur table de hachage (extends AbstractSet)
LinkedHashSetHashSet + ordre d'insertion
TreeSetSet basé sur arbre (extends AbstractSet)
AbstractMapImplémente Map
HashMapMap basée sur table de hachage
TreeMapMap basée sur arbre
WeakHashMapMap avec clés faibles (GC)
LinkedHashMapHashMap + ordre d'insertion
IdentityHashMapÉgalité par référence (==)

Classes abstraites squelettes : AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList, AbstractMap — minimisent l'effort d'implémentation.

Classes legacy (java.util)

ClasseDescription
VectorTableau dynamique, synchronisé (diffère d'ArrayList)
StackSous-classe de Vector, pile LIFO standard
DictionaryAbstraite, clé/valeur, comme Map
HashtableImplémentation concrète de Dictionary, synchronisée
PropertiesSous-classe Hashtable, clés/valeurs String
BitSetTableau de bits redimensionnable

Algorithmes de collection

Méthodes statiques dans la classe Collections. Peuvent lever ClassCastException (types incomparables) ou UnsupportedOperationException (collection non modifiable).

Constantes immuables : EMPTY_SET, EMPTY_LIST, EMPTY_MAP.

Utiliser un Iterator

Pour parcourir une collection. Iterator : parcours avant, suppression. ListIterator : bidirectionnel + modification éléments.

Utiliser un Comparator

TreeSet et TreeMap stockent trié. Le Comparator définit l'ordre de tri. Permet de trier une collection de multiples façons, même des classes non modifiables.

Résumé

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Commentaires Java : Types, utilisation et bonnes pratiques
  3. Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
  4. Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
  5. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  6. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  7. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  8. Annotations Java expliquées : types, placement et exemples pratiques
  9. Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code