package collect;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class DemoList
{
	private String mesCouleurs[] = {"Bleu", "Vert", "Cyan", "Bleu", "Rouge", "Jaune", "Violet", "Blanc"};
	
	public DemoList()
	{
		List<String> maListe;
		
		// Construction d'une liste basée sur le tableau, La liste référence le tableau
		maListe = Arrays.asList(mesCouleurs);
		
		System.out.println("Démonstration de List : voici la liste initiale");
		afficherListe(maListe);

		System.out.println("\nJe trie la liste");
		Collections.sort(maListe);
		afficherListe(maListe);
		
		System.out.println("\nJe modifie la case 2 du tableau :");
		mesCouleurs[2] = "Lapin";
		
		System.out.println("La liste a changé");
		afficherListe(maListe);
		
		System.out.println("\nJe trie la liste");
		Collections.sort(maListe);
		afficherListe(maListe);
		
		// Comme un tableau est statique, il n'est pas possible d'ajouter un élément à la liste.
		// Elle est indissolublement liée au tableau.
		// maListe.add ("Chaton"); provoquerait une erreur.
		
	}
	
	private void afficherListe(List pListe)
	{
		System.out.print("[ ");
		for(int i = 0; i < pListe.size(); i++)
		{
			System.out.print(pListe.get(i));
			System.out.print(i < pListe.size() - 1 ? ", " : "");
		}
		System.out.println(" ]");
	}

}
