# Les tableaux / listes ## Tableaux Ils permettent de stocker plusieurs valeurs dans une variable. Les tableaux doivent être initialisé avec un nombre défini de valeur (contrairement aux listes) ``` String[] array = new String[3]; array[0] = "Ga"; array[1] = "Zo"; array[2] = "Bu"; ``` ou ``` String[] stringArray = { "Ga", "Zo", "Bu" }; ``` On peut créer automatiquement un tableau dans l'instance de notre methode `(type... arrayName)`. La methode suivante retournera un tableau avec toutes les variable qu'on inclue dans l'instance. ``` public class Array{ public String[] makeArray(String... stringArray){ return stringArray; } } ``` dans la methode main : ``` Array.makeArray("Ga","Bu","Zo","Meuh"); ``` Pour afficher le **contenu** d'un tableau, on peut utiliser : ``` System.out.println(Arrays.toString(nom du tableau)); ``` ## List Nous pouvons également faire la même chose avec une List, elle s'initialise de cette façon, en vaillant à bien importer `List` et `ArrayList`. La difference entre un array et une List est qu'une list n'a pas besoin d'être initialisé avec un nombre défini de valeur. Une list doit être instancié avec un type complexe (String, Integer, Double, Student...) ``` List<String> stringsList = new ArrayList<>(); List<Integer> intList = new ArrayList<>(); ``` Dans une liste, si nous voulons ajouter de nouvelles valeurs à notre liste, nous utiliserons sa méthode `add(valeur);` ``` stringsList.add("Ga"); stringsList.add("Zo"); stringsList.add("Bu"); ``` ou au moment de l'instance ``` List<String> stringsList = new ArrayList<>(List.of("Ga", "Bu", "Zo")); ``` Pour modifier une valeur, il suffit d'utiliser la méthode `set(index,valeur)` en définissant quel index de la liste nous souhaitons changer. ``` stringsList.set(2, "Meu"); // Au 2ème index de notre liste, la valeur "Bu" est devenue "Meu" ``` Aussi, quand nous voulons récupérer une valeure nous utiliserons `get(index);` Exemple dans une boucle qui parcours une liste et récupère ses valeurs. ``` for (int i = 0; i < stringsList.size(); i++) { System.out.println(stringsList.get(i)); } ``` Mais pour parcourir une liste ou un tableau, nous utiliserons principalement la boucle `foreach`. ``` for (String i : stringsList) { System.out.println(i); } ``` Petite methode supplementaire pour boucler les lists en `forEach`, cette methode permet de modifier tous les elements d'une liste : ``` stringList.forEach((el) -> { System.out.println(el); }) ``` methode pour supprimer des elements d'une list avec une condition `removeIf`: ``` integerList.removeIf((el) -> el == 0) // supprime tous les elements egaux à 0. ``` ###### tags: `Java`