Summary

Ce document présente un cours sur les collections Java. Il couvre les différentes collections, notamment les listes, les ensembles et les cartes (Map). Le document détaille également l'interface Iterator et les énumérations.

Full Transcript

Programmation Orientée Objet et Langage Java 3- Collections Module: Programmation Objet Avancée A.Mazoul Département Génie informatique Programmation orienté objet en Java...

Programmation Orientée Objet et Langage Java 3- Collections Module: Programmation Objet Avancée A.Mazoul Département Génie informatique Programmation orienté objet en Java Collections Collections en Java Les collections en Java proposent un ensemble d'interfaces et de classes dont le but est de stocker de multiples objets. Elle propose quatre grandes familles de collections:  List : collection d'éléments ordonnés qui accepte les doublons  Set : collection d'éléments non ordonnés par défaut qui n'accepte pas les doublons  Map : collection sous la forme d'une association de paires clé/valeur  Queue et Deque : collections qui stockent des éléments dans un certain ordre avant qu'ils ne soient extraits pour traitement L'API Collections possède deux grandes familles chacune définies par une interface :  java.util.Collection : pour gérer un groupe d'objets  java.util.Map : pour gérer des éléments de type paires de clé/valeur A.Mazoul Programmation orienté objet Java 2 Programmation orienté objet en Java Collections Collections: Diagramme A.Mazoul Programmation orienté objet Java 3 Programmation orienté objet en Java Collections Collections en Java L’interface Collection représente un minimum commun pour les objets qui gèrent des collections: add, clear, contains,…  Manipulation des données d’une Collection A.Mazoul Programmation orienté objet Java 4 Programmation orienté objet en Java Collections Collections en Java  Tester les données d’une Collection A.Mazoul Programmation orienté objet Java 5 Programmation orienté objet en Java Collections Collections en Java Les collections de type Map (tableau associatif) sont définies et implémentées comme des dictionnaires sous la forme d'associations de paires de type clés/valeurs.  Manipulation des données d’une Map A.Mazoul Programmation orienté objet Java 6 Programmation orienté objet en Java Collections Collections en Java  Manipulation des données d’une Map A.Mazoul Programmation orienté objet Java 7 Programmation orienté objet en Java Collections Collections en Java  Tester les données d’une Map A.Mazoul Programmation orienté objet Java 8 Programmation orienté objet en Java Collections Collection : Arraylist ArrayList implémente le concept d’un tableau dynamique. Elle utilise un tableau pour stocker ses éléments L'accès à un élément se fait grâce à son index : le premier élément de la collection possède l'index 0 On peut remplacer ArrayList par List A.Mazoul Programmation orienté objet Java 9 Programmation orienté objet en Java Collections Collection : Linkedlist LinkedList implémente le concept de liste doublement chaînée. vous ne pouvez pas accéder à un index spécifique comme dans Arraylist elle n'a pas besoin d'être redimensionnée quelque soit le nombre d'éléments qu'elle contient. A.Mazoul Programmation orienté objet Java 10 Programmation orienté objet en Java Collections L'interface Iterator Cette interface définit des méthodes pour des objets capables de parcourir les données d'une collection. On distingue deux types d’itérateurs: mono-directionnels et bi-directionnels il n'y a que trois méthodes dans l'interface Iterator. qui sont: Méthode Rôle Indiquer s'il reste au moins un boolean hasNext() élément à parcourir dans la collection Renvoyer le prochain élément dans la Object next() collection Supprimer le dernier élément void remove() parcouru A.Mazoul Programmation orienté objet Java 11 Programmation orienté objet en Java Collections L'interface Iterator Les boucles dans ce programme sont équivalentes : A.Mazoul Programmation orienté objet Java 12 Programmation orienté objet en Java Collections L'interface Iterator ArrayList et LinkedList disposent d’un itérateur bi-directionnel: ListIterator ayant comme méthodes: A.Mazoul Programmation orienté objet Java 13 Programmation orienté objet en Java Collections L'interface Iterator Exemple A.Mazoul Programmation orienté objet Java 14 Programmation orienté objet en Java Collections ArrayList et LinkedList : Manipulation des données addAll: Copier tous les éléments dans une autre list. reverse : inverse une liste. swap : permet d'intervertir deux valeurs. fill : permet la remplissage d'une List avec la même valeur. shuffle : permet de mélanger une List. A.Mazoul Programmation orienté objet Java 15 Programmation orienté objet en Java Collections Comparator - Tri sort : permet avec l’interface Comparator de trier une list des objects. A.Mazoul Programmation orienté objet Java 16 Programmation orienté objet en Java Collections Vector Vector utilise un tableau dynamique pour stocker les éléments de données. Il est similaire à ArrayList. Cependant, il est synchronisé et contient de nombreuses méthodes qui ne font pas partie de la Collection. A.Mazoul Programmation orienté objet Java 17 Programmation orienté objet en Java Collections Stack (Pile) un La pile est la sous-classe de Vector. Il implémente la structure de données dernier entré, premier sorti, c'est-à-dire La Pile. La pile contient toutes les méthodes de la classe Vector et fournit également ses méthodes comme  pop(): Supprime et renvoie l'objet en haut de cette pile.  peek(): Regarde l'objet au sommet de cette pile sans le retirer de la pile.  push(object o) : Pousse un élément sur le dessus de cette pile. Cela a exactement le même effet que addElement(Object o) A.Mazoul Programmation orienté objet Java 18 Programmation orienté objet en Java Collections Queue (File) : ArrayDeque ArrayDeque maintient l'ordre premier entré, premier sorti. Il peut être défini comme une liste ordonnée qui est utilisée pour contenir les éléments qui sont sur le point d'être traités. La classe ArrayDeque implémente l'interface Deque. A.Mazoul Programmation orienté objet Java 19 Programmation orienté objet en Java Collections Les ensembles : L’interface Set L’Interface Set en Java est présent dans le package java.util. Il étend l'interface Collection. Il représente l'ensemble non ordonné d'éléments qui nous permet d’éviter de stocker les éléments en double. Set peut être instancié comme : Set s1 = new HashSet(); Set s2 = new LinkedHashSet(); Set s3 = new TreeSet();  HashSet implémente Set Interface. Il représente la collection qui utilise une table de hachage pour le stockage.  LinkedHashSet représente l'implémentation LinkedList de l’interface Set. Il étend la classe HashSet et implémente l'interface Set.  TreeSet implémente l'interface Set qui utilise une arborescence pour le stockage. A.Mazoul Programmation orienté objet Java 20 Programmation orienté objet en Java Collections Les ensembles : L’interface Set A.Mazoul Programmation orienté objet Java 21 Programmation orienté objet en Java Collections Map L'interface Map définit les fonctionnalités pour une collection qui associe des clés à des valeurs. Chaque clé ne peut être associée qu'à une seule valeur. Chaque clé d'une Map doit être unique. A.Mazoul Programmation orienté objet Java 22 Programmation orienté objet en Java Collections Map HashMap est l'implémentation de Map, mais il ne maintient aucun ordre. LinkedHashMap est l'implémentation de Map. Il hérite de la classe HashMap. Il maintient l'ordre d'insertion. TreeMap est l'implémentation de Map et SortedMap. Il maintient l'ordre croissant. On peut remplacer  Ajoute une clé associée à sa valeur: HashMap par TreeMap  Récupérer une valeur à partir de sa clé, Si on veut obtenir la valeur de clé 2 : A.Mazoul Programmation orienté objet Java 23 Programmation orienté objet en Java Collections Map  Rechercher une clé spécifique dans cette map: containsKey(key)  Rechercher une valeur spécifique dans cette map: containsValue(Value)  Retourne l'ensemble de clés : keySet()  Retourne l'ensemble de clés/valeurs : entrysSet() A.Mazoul Programmation orienté objet Java 24 Programmation orienté objet en Java Les énumérations Les énumérations Une énumération est un type de données particulier, dans lequel une variable ne peut prendre qu'un nombre restreint de valeurs. Les valeurs d’un énumération sont des constantes nommée (ex: MADAME, MADEMOISELLE, MONSIEUR)  Accès aux variables:  La méthode statique values() retourne un tableau de toutes les valeurs énumérées disponibles. A.Mazoul Programmation orienté objet Java 25 Programmation orienté objet en Java Les énumérations Constructeurs privés Grâce aux constructeurs privés il est possible de définir des constructeurs privés pour chacune des valeurs énumérées. L’objectif sera de initier les attributs de la classe énumération. Instanciation des valeurs énumérées Attributs Constructeur privée Méthodes A.Mazoul Programmation orienté objet Java 26 Programmation orienté objet en Java Les énumérations Exemple A.Mazoul Programmation orienté objet Java 27 A.Mazoul Réseaux informatiques Téléinformatique 28

Use Quizgecko on...
Browser
Browser