Structures de données du Collections Framework

Types de données et exceptions en Java

Jim White

Java Instructor

Qu'est-ce qu'un framework ?

  • Un framework est un ensemble de types réutilisables offrant des fonctions génériques
    • Exemples de types : classes et interfaces
    • Améliore la qualité de l'application
    • Évite de tout recréer de zéro
  • Les frameworks sont fournis sous forme de package(s) en Java
  • Les frameworks incluent des règles et des recommandations d'usage

Les frameworks fournissent un ensemble de code prêt à l'emploi avec des fonctions génériques

1 Photo par Ashkan Forouzani sur Unsplash
Types de données et exceptions en Java

Types Java

Deux catégories de types en Java :

  • Types primitifs
    • byte, short, int, long, float, double, char, boolean
  • Types référence
    • Classes
    • Interfaces
    • Enums
    • Tableaux
    • ...
Types de données et exceptions en Java

Le Collections Framework

  • Collections Framework : ensemble intégré de types génériques de structures de données en Java
    • Un package de types pour stocker et manipuler un groupe d'objets
  • Défini dans le package java.util
    • Il faut importer pour utiliser les types du framework
Types de données et exceptions en Java

Et les tableaux ?

  • Les tableaux Java peuvent contenir un groupe d'objets ou de primitifs
    • Le Collections Framework propose une alternative de structures de données
  • Les deux ont des avantages et des inconvénients
Tableaux Collections
Non redimensionnables Taille dynamique (grandissent/réduisent)
Stockent des primitifs ou des objets Ne stockent que des objets
Homogènes : éléments de même type Hétérogènes : objets de types différents
Accès avec la notation spéciale [] Accès via des méthodes
Syntaxe spéciale d'initialisation {} Utilisent new (pas de syntaxe spéciale)
Types de données et exceptions en Java

Types du Collections Framework

  • Le Collections Framework se divise en deux types : Collection et Map
    • Représentés par deux interfaces : java.util.Collection et java.util.Map
    • Chacune possède plusieurs classes d'implémentation
  • import java.util.*; pour utiliser n'importe quel type du Collections Framework

Le Collections Framework comporte deux types : Collection et Map

Types de données et exceptions en Java

Collection

  • Collection définit plusieurs regroupements d'objets
    • Précisés par des interfaces supplémentaires
  • Groupe ordonné d'objets : List
  • Groupe non ordonné d'objets : Set
  • Premier entré, premier sorti : Queue
    • Fonctionne comme une file d'attente
  • Méthodes .add(Object) et .remove(Object) pour modifier toute Collection

Collection inclut List, Set et Map

Types de données et exceptions en Java

Map

  • Les structures Map fonctionnent comme un annuaire ou un dictionnaire
    • Objets « clé » -> objets « valeur »
    • Dans un annuaire : un nom -> un numéro
    • Dans un dictionnaire : un mot -> sa définition
  • Utilisez la clé pour modifier une Map
    • .put(Object key, Object value) pour ajouter
    • .remove(Object key) pour supprimer
  • De nombreux types de Map, comme HashMap

Une Map fonctionne comme un annuaire ou un dictionnaire

Types de données et exceptions en Java

Génériques

  • Collections et Maps sont « paramétrées »
    • Les génériques Java précisent les objets dans une Collection ou une Map
    • Syntaxe générique : <Class> avec un type paramétré.
      • < > s'appelle l'opérateur diamant
ArrayList<String> list = new ArrayList<String>();  // Construction avec génériques
Types de données et exceptions en Java

Génériques et sûreté de typage

  • Les génériques améliorent la sûreté de typage
    • Ils restreignent les objets autorisés dans le contenu des Collection et Map
ArrayList<String> list = new ArrayList<String>();
list.add("hello");  // Ajouter une String est correct
list.add(new Integer(5));  // Tenter d'ajouter un Integer provoque une erreur de compilation
Types de données et exceptions en Java

Sans génériques

ArrayList list2 = new ArrayList();  // Valide mais non spécifique

list2.add("hello");                 // Ici, tout type d'objet peut être ajouté
list2.add(new Integer(5));
Types de données et exceptions en Java

Déclaration et affectation de variables

  • Déclaration et affectation de variable peuvent être séparées
ArrayList<String> list = new ArrayList<String>(); // Déclaration et affectation en une ligne

ArrayList<String> list2;     // Déclaration…
list2 = new ArrayList<String>();  // …puis affectation en deux instructions
Types de données et exceptions en Java

Passons à la pratique !

Types de données et exceptions en Java

Preparing Video For Download...