automobile

## Class Garage2

- java.lang.Object
- - automobile.Garage2

- All Implemented Interfaces:
    java.lang.Iterable<Vehicule>

      public class Garage2
      extends java.lang.Object
      implements java.lang.Iterable<Vehicule>

  Second garage, affichant les véhicules qu'il contient Utilise des TreeSet Container de Véhicules Implémente un itérateur Iterable On pourrait tenter d'étendre Garage1 pour éviter les répétitions, mais je n'ai pas réussi à appeler le bon constructeur dans IteratorGarage de cette façon (il appelait toujours celui prenant un ArrayList en paramètre, comme si on ne pouvait pas écraser l'attribut list dans une classe fille)
  Author:
    Adrien Poupa

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Garage2()` Constructeur par défaut de Garage1 Instancie le TreeSet avec pour méthode de classement l'ordre des immatriculations
    `Garage2(java.util.Comparator<Vehicule> comparateur)` Constructeur prenant un comparateur en paramètre

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Vehicule voiture)` Ajout d'un véhicule au garage Rien de particulier ici, on utilise la méthode native de TreeSet
    `java.util.Iterator<Vehicule>` | `iterator()` Itérateur de Garage1, contenant des Véhicules Retourne une nouvelle instance de l'itérateur de garage2 prenant en paramètre le TreeSet de voiture
    `java.lang.String` | `toString()` Surcharge de toString, affiche les Véhicules contenus dans le garage
    `void` | `triCompteur()` Tri des voitures par compteur Ici, on crée une nouvelle liste TreeSet dans laquelle on spéficie un nouvel ordre de tri défini dans la classe CompteurComparator, on ajoute ensuite tous nos éléments actuels dans cette nouvelle liste, qui sera bien triée selon l'ordre spécifié On remplace ensuite la liste actuelle par cette nouvelle liste, triée selon l'ordre voulu
    `void` | `triNoImmatriculion()` Tri des voitures par numéro d'immatriculation J'ai laissé Immatriculion tel qu'implémenté dans la classe de tests...

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### Garage2

          public Garage2()

      Constructeur par défaut de Garage1 Instancie le TreeSet avec pour méthode de classement l'ordre des immatriculations

    - #### Garage2

          public Garage2(java.util.Comparator<Vehicule> comparateur)

      Constructeur prenant un comparateur en paramètre
      Parameters:
        `comparateur` - constructeur à prendre en compte lors de la construction de la liste

  - ### Method Detail

    - #### add

          public void add(Vehicule voiture)

      Ajout d'un véhicule au garage Rien de particulier ici, on utilise la méthode native de TreeSet
      Parameters:
        `voiture` - objet Vehicule à ajouter

    - #### iterator

          public java.util.Iterator<Vehicule> iterator()

      Itérateur de Garage1, contenant des Véhicules Retourne une nouvelle instance de l'itérateur de garage2 prenant en paramètre le TreeSet de voiture
      Specified by:
        `iterator` in interface `java.lang.Iterable<Vehicule>`
      Returns:
        objet iterator contenant les Céhicules

    - #### toString

          public java.lang.String toString()

      Surcharge de toString, affiche les Véhicules contenus dans le garage
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        liste du type "Vehicule X : compteur = [Totalisateur = X | Partiel = X]; jauge = X"

    - #### triNoImmatriculion

          public void triNoImmatriculion()

      Tri des voitures par numéro d'immatriculation J'ai laissé Immatriculion tel qu'implémenté dans la classe de tests... Ici, on crée une nouvelle liste TreeSet dans laquelle on spéficie un nouvel ordre de tri défini dans la classe GarageTriImmatriculion (même typo), on ajoute ensuite tous nos éléments actuels dans cette nouvelle liste, qui sera bien triée selon l'ordre spécifié On remplace ensuite la liste actuelle par cette nouvelle liste, triée selon l'ordre voulu

    - #### triCompteur

          public void triCompteur()

      Tri des voitures par compteur Ici, on crée une nouvelle liste TreeSet dans laquelle on spéficie un nouvel ordre de tri défini dans la classe CompteurComparator, on ajoute ensuite tous nos éléments actuels dans cette nouvelle liste, qui sera bien triée selon l'ordre spécifié On remplace ensuite la liste actuelle par cette nouvelle liste, triée selon l'ordre voulu