Comment afficher tous les éléments d'un arraylist?
disons que j'ai une classe de voiture avec des attributs make
et registration
, et je crée un ArrayList pour les stocker. Comment afficher tous les éléments de L'ArrayList?
j'ai ce code maintenant:
public Car getAll()
{
for(int i = 0; i < cars.size(); i++) //cars name of arraylist
{
Car car = cars.get(i);
{
return cars.get (i);
}
}
return null;
}
Ça compile bien, mais quand je l'ai essayer dans mon testeur de classe à l'aide de ce code:
private static void getAll(Car c1)
{
ArrayList <Car> cars = c1.getAll(); // error incompatible type
for(Car item : cars)
{
System.out.println(item.getMake()
+ " "
+ item.getReg()
);
}
}
j'obtiens une erreur de type incompatible. Mon codage est-il correct? Si non, est-ce que quelqu'un peut me montrer comment ça devrait être?
Merci
9 réponses
essayez-vous de faire quelque chose comme ça?
public List<Car> getAll() {
return new ArrayList<Car>(cars);
}
puis en l'appelant:
List<Car> cars = c1.getAll();
for (Car item : cars) {
System.out.println(item.getMake() + " " + item.getReg());
}
vous obtenez une erreur parce que votre fonction getAll dans la classe Car renvoie une seule voiture et vous voulez l'assigner dans un tableau.
ce n'est vraiment pas clair et vous voudrez peut-être poster plus de code. pourquoi passez-vous une seule voiture à la fonction? Quelle est la signification d'appeler getAll sur une voiture?
ce n'est pas du tout clair ce que vous faites. Votre fonction getAll () devrait retourner une liste
Si vous avez
Car[] arrayOfCars
et que vous voulez une Liste, vous pouvez simplement faire ceci:
List<Car> listOfCars = Arrays.asList(arrayOfCars);
les tableaux sont documentés Ici.
Tangentielle: String.format() roches:
public String toString() {
return String.format("%s %s", getMake(), getReg());
}
private static void printAll() {
for (Car car: cars)
System.out.println(car); // invokes Car.toString()
}
getAll()
la méthode n'obtient pas tout. Il rend la première voiture.
return
l'instruction termine la boucle.
une Autre approche consiste à ajouter un toString()
méthode Car
classe et de laisser le toString()
méthode D'ArrayList faire tout le travail.
@Override
public String toString()
{
return "Car{" +
"make=" + make +
", registration='" + registration + '\'' +
'}';
}
vous ne recevez pas une voiture par ligne dans la sortie, mais c'est rapide et facile si vous voulez juste voir ce qui est dans le tableau.
List<Car> cars = c1.getAll();
System.out.println(cars);
Sortie serait quelque chose comme ceci:
[Car{make=FORD, registration='ABC 123'},
Car{make=TOYOTA, registration='ZYZ 999'}]
Salut désolé le code pour le second devrait être:
private static void getAll (CarList c1) {
ArrayList <Car> cars = c1.getAll(); // error incompatible type
for(Car item : cars)
{
System.out.println(item.getMake()
+ " "
+ item.getReg()
);
}
}
j'ai une classe appelée Carliste qui contient la liste de tableaux et de sa méthode, de sorte que dans la classe testeur, j'ai ce code à utiliser que les Carlistes de la classe:
CarList c1; c1 = new CarList ();
tout le reste fonctionne, comme ajouter et enlever des voitures et l'affichage d'une voiture inindividuelle, j'ai juste besoin d'un code pour affiche toutes les voitures de la liste.
Arraylist utilise l'interface Itératrice pour traverser les éléments utilisez ceci
public void display(ArrayList<Integer> v) {
Iterator vEnum = v.iterator();
System.out.println("\nElements in vector:");
while (vEnum.hasNext()) {
System.out.print(vEnum.next() + " ");
}
}