AS

Tableaux arraylist

Introduction

  • Dans la programmation, il est essentiel de gérer des collections d'éléments.

  • En Java, deux structures couramment utilisées sont les tableaux (arrays) et les ArrayList.

  • Bien que similaires, elles diffèrent sur plusieurs points : gestion de la taille, flexibilité, types de données, méthodes disponibles.

Les Tableaux en Java

  • Définition: Les tableaux sont des structures de données de taille fixe pour stocker des éléments du même type.

  • La taille d'un tableau est fixée lors de sa création et ne peut pas être modifiée.

2.1 Déclaration d’un tableau

  • Syntaxe de déclaration: type[] nom = new type[taille];

  • Exemple: int[] nombres = new int[5]; (tableau capable de stocker 5 entiers)

2.2 Affectation des éléments

  • Utilisation de l'index pour assigner des valeurs :

    • nombres[0] = 10;

    • nombres[1] = 20;

2.3 Accès aux éléments

  • Accès via l'indice : int premierNombre = nombres[0];

2.4 Valeurs par défaut

  • Les cases d'un tableau sont initialisées avec des valeurs par défaut selon leur type:

    • int : 0; boolean : false; objet : null.

2.5 Parcourir un tableau avec une boucle for

  • La boucle for est couramment utilisée pour itérer à travers un tableau:

    • Exemple :

      for (int i = 0; i < nombres.length; i++) {
          System.out.println("élément d'indice " + i + " : " + nombres[i]);
      }

2.6 Tableaux et références

  • Les tableaux sont semblables aux objets mais n'ont pas de méthodes ni de constructeurs.

  • Création avec new, stockés dans le tas, références contiennent l'adresse.

Les ArrayList en Java

  • Définition: Les ArrayList permettent de stocker des éléments de manière dynamique.

  • Contraste: Taille flexible, mais ne peut contenir que des objets (utilisation de classes wrapper pour types primitifs).

3.1 Création d’une ArrayList

  • Déclaration : ArrayList<Type> nom = new ArrayList<>();

  • Exemple : ArrayList<Integer> nombres = new ArrayList<>();

3.2 Ajout d’un élément

  • Ajouter un élément avec la méthode add():

    • nombres.add(10);

3.3 Accès à un élément

  • Accéder à un élément avec get():

    • Integer premierNombre = nombres.get(0);

3.4 Quelques méthodes utiles

  • Méthodes pratiques incluent:

    • add(E element): Ajoute un élément.

    • get(int index): Récupère l'élément.

    • set(int index, E element): Modifie l'élément.

    • remove(int index): Supprime l'élément.

    • size(): Renvoie la taille.

    • contains(Object o): Vérifie la présence d'un élément.

    • clear(): Supprime tous les éléments.

3.5 Exemple d’utilisation des méthodes

  • Exemple d'utilisation de méthodes sur une ArrayList:

    ArrayList<Integer> nombres = new ArrayList<>();
    nombres.add(10);
    nombres.add(20);
    Integer secondNombre = nombres.get(1); // 20
    nombres.set(1, 25); // Replace 20 with 25
    boolean contientDix = nombres.contains(10); // true
    nombres.remove(0); // Supprime le premier élément (10)
    int taille = nombres.size(); // 2 (après suppression)

3.6 Parcourir une ArrayList avec une boucle for

  • Utilisation d'une boucle for pour parcourir:

    for (int i = 0; i < nombres.size(); i++) {
        System.out.println(nombres.get(i));
    }

La boucle foreach en Java

  • Permet de parcourir des collections sans gérer les indices manuellement.

4.1 Utilisation de foreach avec les tableaux

  • Exemple sur les tableaux:

    for (int nombre : nombres) {
        System.out.println(nombre);
    }

4.2 Utilisation de foreach avec les ArrayList

  • Exemple avec ArrayList:

    for (Integer nombre : nombres) {
        System.out.println(nombre);
    }

4.3 La boucle foreach avec d’autres types de collections

  • Fonctionne avec tout objet qui implémente l’interface Iterable.

4.4 Avantages de la boucle foreach

  • Avantages incluent simplicité, sécurité et compatibilité.

Comparaison des tableaux et des ArrayList

  • Taille:

    • Tableaux : fixe.

    • ArrayList : dynamique.

  • Type de données stockées:

    • Tableaux : primitifs et objets.

    • ArrayList : objets uniquement.

  • Méthodes associées:

    • Tableaux : pas de méthodes.

    • ArrayList : dispose de plusieurs méthodes utiles.

  • Flexibilité:

    • Tableaux : rigides.

    • ArrayList : très flexibles.

Tableaux et ArrayList à deux dimensions ou plus

  • Possible de créer des tableaux et des ArrayList multidimensionnels.

6.1 Tableaux à deux dimensions

  • Création : int[][] tableau = new int[3][3];

  • Parcours avec boucle imbriquée.

6.2 ArrayList à deux dimensions

  • Création d’une ArrayList contenant d'autres ArrayList.

Exemples typiques d’utilisation des tableaux et des ArrayList

  • Tableaux: adaptées pour les listes fixes (ex: noms des mois).

  • ArrayList: idéales pour gérer des listes dynamiques (ex: liste de produits).

Conclusion

  • Exploration des tableaux et ArrayList en Java.

  • Comparaison de leurs caractéristiques, avantages et usages typiques:

    • Les tableaux sont fixés, optimaux pour un accès performant.

    • Les ArrayList sont flexibles, idéales pour des données dynamiques.