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

Java - Cadre de collections

Avant Java 2, Java fournissait des classes ad hoc telles que Dictionary, Vector, Stack, et Propriétés pour stocker et manipuler des groupes d'objets. Bien que ces cours aient été très utiles, il leur manquait un thème central et unificateur. Ainsi, la façon dont vous avez utilisé Vector était différente de la façon dont vous avez utilisé Properties.

Le cadre de collecte a été conçu pour répondre à plusieurs objectifs, tels que −

À cette fin, l'ensemble du cadre des collections est conçu autour d'un ensemble d'interfaces standard. Plusieurs implémentations standard telles que LinkedList, HashSet, et TreeSet , de ces interfaces sont fournies que vous pouvez utiliser telles quelles et vous pouvez également implémenter votre propre collection, si vous le souhaitez.

Un framework de collections est une architecture unifiée pour représenter et manipuler des collections. Tous les frameworks de collections contiennent les éléments suivants −

En plus des collections, le framework définit plusieurs interfaces et classes de carte. Les cartes stockent des paires clé/valeur. Bien que les cartes ne soient pas des collections dans le bon usage du terme, mais ils sont entièrement intégrés aux collections.

Les interfaces de collecte

Le framework de collections définit plusieurs interfaces. Cette section donne un aperçu de chaque interface −

Sr.No. Interface et description
1 L'interface de collecte

Cela vous permet de travailler avec des groupes d'objets; il se situe au sommet de la hiérarchie des collections.

2 L'interface de liste

Cela étend la Collection et une instance de List stocke une collection ordonnée d'éléments.

3 L'ensemble

Cela étend Collection pour gérer les ensembles, qui doivent contenir des éléments uniques.

4 L'ensemble trié

Cela étend Set pour gérer les ensembles triés.

5 La carte

Cela mappe des clés uniques à des valeurs.

6 La carte.Entrée

Ceci décrit un élément (une paire clé/valeur) dans une carte. Il s'agit d'une classe interne de Map.

7 La carte triée

Cela étend Map afin que les clés soient conservées dans un ordre croissant.

8 L'énumération

Cette interface héritée définit les méthodes par lesquelles vous pouvez énumérer (obtenir un à la fois) les éléments d'une collection d'objets. Cette interface héritée a été remplacée par Iterator.

Les classes de collecte

Java fournit un ensemble de classes de collection standard qui implémentent des interfaces Collection. Certaines des classes fournissent des implémentations complètes qui peuvent être utilisées telles quelles et d'autres sont des classes abstraites, fournissant des implémentations squelettiques qui sont utilisées comme points de départ pour créer des collections concrètes.

Les classes de collection standard sont résumées dans le tableau suivant −

Collection abstraite

Implémente la plupart de l'interface Collection.

Liste abstraite

Étend AbstractCollection et implémente la plupart de l'interface List.

Liste Séquentielle Abstraite

Étend AbstractList pour une utilisation par une collection qui utilise un accès séquentiel plutôt qu'aléatoire à ses éléments.

Ensemble abstrait

Étend AbstractCollection et implémente la plupart de l'interface Set.

Carte abstraite

Implémente la plupart de l'interface Map.

Sr.No. Classe et description
1
2
3
4 Liste liée

Implémente une liste chaînée en étendant AbstractSequentialList.

5 ArrayList

Implémente un tableau dynamique en étendant AbstractList.

6
7 HashSet

Étend AbstractSet pour une utilisation avec une table de hachage.

8 LinkedHashSet

Étend HashSet pour permettre les itérations d'ordre d'insertion.

9 ArbreEnsemble

Implémente un ensemble stocké dans un arbre. Étend AbstractSet.

10
11 HashMap

Étend AbstractMap pour utiliser une table de hachage.

12 Carte arborescente

Étend AbstractMap pour utiliser un arbre.

13 WeakHashMap

Étend AbstractMap pour utiliser une table de hachage avec des clés faibles.

14 LinkedHashMap

Étend HashMap pour permettre les itérations d'ordre d'insertion.

15 IdentityHashMap

Étend AbstractMap et utilise l'égalité des références lors de la comparaison de documents.

La AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList et AbstractMap les classes fournissent des implémentations squelettiques des interfaces de collection de base, afin de minimiser l'effort requis pour les implémenter.

Les classes héritées suivantes définies par java.util ont été abordées dans le chapitre précédent −

Sr.No. Classe et description
1 Vecteur

Cela implémente un tableau dynamique. Il est similaire à ArrayList, mais avec quelques différences.

2 Empiler

Stack est une sous-classe de Vector qui implémente une pile standard dernier entré, premier sorti.

3 Dictionnaire

Dictionary est une classe abstraite qui représente un référentiel de stockage clé/valeur et fonctionne un peu comme Map.

4 Table de hachage

Hashtable faisait partie du java.util original et est une implémentation concrète d'un dictionnaire.

5 Propriétés

Properties est une sous-classe de Hashtable. Il est utilisé pour maintenir des listes de valeurs dans lesquelles la clé est une chaîne et la valeur est également une chaîne.

6 BitSet

Une classe BitSet crée un type spécial de tableau qui contient des valeurs de bit. Ce tableau peut augmenter en taille selon les besoins.

Les algorithmes de collecte

La structure des collections définit plusieurs algorithmes qui peuvent être appliqués aux collections et aux cartes. Ces algorithmes sont définis comme des méthodes statiques au sein de la classe Collections.

Plusieurs des méthodes peuvent lancer une ClassCastException , qui se produit lorsqu'une tentative est faite pour comparer des types incompatibles, ou une UnsupportedOperationException , qui se produit lors d'une tentative de modification d'une collection non modifiable.

Les collections définissent trois variables statiques :EMPTY_SET, EMPTY_LIST et EMPTY_MAP. Tous sont immuables.

Sr.No. Algorithme et description
1 Les algorithmes de collecte

Voici une liste de toutes les implémentations d'algorithmes.

Comment utiliser un itérateur ?

Souvent, vous souhaiterez parcourir les éléments d'une collection. Par exemple, vous pouvez afficher chaque élément.

La façon la plus simple de le faire est d'employer un itérateur, qui est un objet qui implémente l'interface Iterator ou ListIterator.

Iterator vous permet de parcourir une collection, d'obtenir ou de supprimer des éléments. ListIterator étend Iterator pour permettre le parcours bidirectionnel d'une liste et la modification d'éléments.

Sr.No. Méthode et description de l'itérateur
1 Utilisation de l'itérateur Java

Voici une liste de toutes les méthodes avec des exemples fournis par les interfaces Iterator et ListIterator.

Comment utiliser un comparateur ?

TreeSet et TreeMap stockent les éléments dans un ordre trié. Cependant, c'est le comparateur qui définit précisément quel ordre trié signifie.

Cette interface nous permet de trier une collection donnée de différentes manières. Cette interface peut également être utilisée pour trier toutes les instances de n'importe quelle classe (même les classes que nous ne pouvons pas modifier).

Sr.No. Méthode et description de l'itérateur
1 Utilisation du comparateur Java

Voici une liste de toutes les méthodes avec des exemples fournis par Comparator Interface.

Résumé

Le framework de collections Java donne au programmeur l'accès à des structures de données prépackagées ainsi qu'à des algorithmes pour les manipuler.

Une collection est un objet qui peut contenir des références à d'autres objets. Les interfaces de collection déclarent les opérations réalisables sur chaque type de collection.

Les classes et les interfaces du framework de collections se trouvent dans le package java.util.


Java

  1. Opérateurs Java
  2. Commentaires Java
  3. Java pour chaque boucle
  4. Chaînes Java
  5. InterfaceJava
  6. Classe anonyme Java
  7. Java essayer avec des ressources
  8. Annotations Java
  9. Assertions Java