Un tableau de liste d'objet

Résolu
histl4000 Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   -  
histl4000 Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Dans le cadre d'un cours je dois faire un exercice qui consiste a faire quelque adaptation. Donc enfaite, je dispose d'un tableau de voiture :
private Voiture[] voiture;

Et je dois transformer ce tableau de voiture en un tableau de liste de voiture initialisé à 10. Je comprends pas comment procéder. Est-ce qu'il s'agit de faire bêtement une liste c-à-d:
private ArrayList<Voiture> voitures =new ArrayList[10];


ou je dois faire ceci ?
private ArrayList<Voiture>[] voitures =new ArrayList[10];


Je vois pas très bien ce que je dois faire. Merci pour l'aide que vous m'apporterai


A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

La classe Voiture, tu l'as créé toi même (ou on te la fourni), elle contient des attributs, un ou plusieurs constructeurs et des méthodes.

La classe ArrayList, pareil, à part qu'elle est fourni par Java. Et ce que l'on te demande de faire, c'est d'utiliser les constructeurs et méthodes de la classe ArrayList pour remplacer les tableaux.

La documentation de ArrayList est ici : https://docs.oracle.com/javase/10/docs/api/java/util/ArrayList.html
Cela te décrit l'ensemble des constructeurs et méthodes que tu peux utiliser pour cette classe.

Dans ton cas, ce sera plutôt :
ArrayList<Voiture> voitures = new ArrayList<>(10);

C'est à dire en utilisant le constructeur
public ArrayList​(int initialCapacity)
0
histl4000 Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   3
 
La classe voiture contient 3 méthodes (ajouterVoiture, rechercherVoiture et afficherTouteLesVoiture). Elle possède un constructeur qui permettais d'initialiser le tableau selon un certain nombre.
public Voiture(int num) {
assert num>0;
voitures = Voiture[num];

}
0
histl4000 Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   3
 
Une autre question : Si je fais comme vous m'avez dit comment puis-je faire pour prendre la taille de la liste ? Car j'en ai besoin dans l'un des calculs. C'est bien ceci pour avoir la taille ? :
voitures.size();

Cela me retourne 0 alors que je voudrais avoir 10...
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > histl4000 Messages postés 129 Date d'inscription   Statut Membre Dernière intervention  
 
Il y a deux notions à ne pas confondre :
  • la capacité de la liste : le nombre d'éléments qu'elle peut contenir (qui augmente automatiquement)
  • la taille de la liste : le nombre d'éléments qu'elle contient réellement (que compte la méthode size)

En faisant
new ArrayList<>​(10)
la liste est créée avec une capacité initiale de 10 éléments, mais elle est vide, donc sa taille vaut 0, c'est normal.

Pour la remplir il faut utiliser la méthode add(Voiture). Si tu ajoutes 10 voitures tu auras une taille à 10.
voitures.add(new Voiture(1));
voitures.add(new Voiture(2));
voitures.add(new Voiture(3));
...
0
histl4000 Messages postés 129 Date d'inscription   Statut Membre Dernière intervention   3
 
Ah oui d'accord. Merci beaucoup.
0