Как отобразить все элементы в arraylist?

Вы не инициировали параметры @tdays и @amount

17
задан crowne 3 November 2010 в 16:48
поделиться

7 ответов

Тангенциальный: String.format () пород:

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()
}
2
ответ дан 30 November 2019 в 13:34
поделиться

Совершенно не ясно, что вы делаете. Ваша функция getAll () должна возвращать List , а не Car. Иначе зачем называть это getAll?

Если у вас есть

Car[] arrayOfCars

и вы хотите получить список, вы можете просто сделать это:

List<Car> listOfCars = Arrays.asList(arrayOfCars);

Массивы задокументированы Здесь .

2
ответ дан 30 November 2019 в 13:34
поделиться

Вы получаете ошибку, потому что ваша функция getAll в классе Car возвращает один объект Car, и вы хотите назначить его в массив.

Это действительно не ясно, и вы можете разместить больше кода. почему вы передаете один автомобиль в функцию? В чем смысл вызова getAll на автомобиле.

2
ответ дан 30 November 2019 в 13:34
поделиться

Вы пытаетесь сделать что-то подобное?

public List<Car> getAll() {
    return new ArrayList<Car>(cars);
}

И затем называете это:

List<Car> cars = c1.getAll();
for (Car item : cars) {   
    System.out.println(item.getMake() + " " + item.getReg());
}
12
ответ дан 30 November 2019 в 13:34
поделиться

Ваш метод getAll () не получает все. Возвращает первый автомобиль.

Оператор return завершает цикл.

2
ответ дан 30 November 2019 в 13:34
поделиться

Другой подход заключается в добавлении метода toString () к вашему автомобилю ] и просто позвольте методу toString () из ArrayList выполнить всю работу.

@Override
public String toString()
{
    return "Car{" +
            "make=" + make +
            ", registration='" + registration + '\'' +
            '}';
}

Вы не получаете один автомобиль на строку в выводе, но это быстро и легко, если вы просто хотите посмотрим, что находится в массиве.

List<Car> cars = c1.getAll();
System.out.println(cars);

Вывод будет выглядеть примерно так:

[Car{make=FORD, registration='ABC 123'},
Car{make=TOYOTA, registration='ZYZ 999'}]
2
ответ дан 30 November 2019 в 13:34
поделиться

Привет, извините, код для второго должен быть:

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()
                       );
}

}

У меня есть класс с именем CarList, который содержит arraylist и его метод, поэтому в классе тестера у меня есть в основном этот код для использования этого класса CarList:

CarList c1; c1 = new CarList ();

все остальное работает, например, добавление и удаление автомобилей и отображение отдельного автомобиля, мне просто нужен код для отображения всех автомобилей в массиве.

1
ответ дан 30 November 2019 в 13:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: