import java.util.ArrayList; // Importation de la classe ArrayList

public class exo1 {
    public static void main(String[] args) {
        // Création des listes pour stocker différents types
        ArrayList<Integer> listeInteger = new ArrayList<>(); // Liste pour les Integer
        ArrayList<Float> listeFloat = new ArrayList<>();     // Liste pour les Float
        ArrayList<Number> listeNumber = new ArrayList<>();   // Liste pour les Number (peut contenir Integer, Float, etc.)

        // Ajout d'éléments à la liste Integer
        listeInteger.add(1);
        listeInteger.add(2);
        listeInteger.add(3);

        // Ajout d'éléments à la liste Float
        listeFloat.add(1.0f);
        listeFloat.add(2.0f);
        listeFloat.add(3.0f);

        // Affichage des listes pour vérifier leur contenu
        System.out.println("Liste Integer: " + listeInteger);
        System.out.println("Liste Float: " + listeFloat);
        
        // Transvaser les éléments de listeInteger et listeFloat vers listeNumber
        listeNumber.addAll(listeInteger); // Ajoute tous les Integer à listeNumber
        listeNumber.addAll(listeFloat);   // Ajoute tous les Float à listeNumber

        // Affichage de la liste Number après les ajouts
        System.out.println("Liste Number après ajout: " + listeNumber);

        // Test de l'ajout direct de listeInteger à listeFloat (commenté car cela provoquerait une erreur)
        // listeFloat.addAll(listeInteger); // Cela provoquerait une erreur de compilation, car Integer n'est pas un Float
    }
}


/*
Imports : Expliquent l'importation de la classe ArrayList.
Création de listes : Indiquent les types des listes créées.
Ajouts d'éléments : Spécifient ce que l'on ajoute à chaque liste.
Affichage : Indiquent l'affichage des listes pour vérifier le contenu.
Transfert des éléments : Expliquent ce qui se passe lors de l'utilisation de addAll.
Commentaire sur l'ajout direct : Clarifie pourquoi l'ajout d'une liste à une autre pourrait provoquer une erreur.
*/