Un tableau de liste d'objet

Résolu/Fermé
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 - Modifié le 24 avril 2018 à 19:20
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 - 25 avril 2018 à 14:19
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
24 avril 2018 à 18:47
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 lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 3
24 avril 2018 à 19:20
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 lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 3
24 avril 2018 à 19:35
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019 > histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018
24 avril 2018 à 19:53
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 lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 3
25 avril 2018 à 14:19
Ah oui d'accord. Merci beaucoup.
0