преобразование элементов списка для строкового представления

Я хотел бы получить строковый текст элементов, сохраненных в списке, сказать List<Car>. Был бы toArray () и toString () методы быть наилучшими вариантами?

10
задан Bozho 19 April 2011 в 06:53
поделиться

5 ответов

Да, но делать это вручную дает вам больше контроля:

// initialize with the exact length
List<String> stringsList = new ArrayList<String>(listOfCars.size()); 
for (Car car : listOfCars) {
    stringsList.add(car.toString());   
}

Если вы не переопределили метод toString() или не хотите его переопределять, вы можете использовать car.getName() вместо car.toString() (или любую другую комбинацию свойств, которая вам нравится)

.
6
ответ дан 3 December 2019 в 13:24
поделиться

Другая идея - использовать Apache Commons Lang для написания следующего кода:

StringUtils.join(myList);

Интерес заключается в том, что вы также можете предоставить разделитель, например:

StringUtils.join(myList, " ; ");
18
ответ дан 3 December 2019 в 13:24
поделиться

Существует статический тостр (объект []) метод Java.util.Arrays . Призывая его с помощью Toarray () результат списка (как вы предложили) должны выполнять работу.

8
ответ дан 3 December 2019 в 13:24
поделиться

Предоставление вы не возражаете на вывод строки после Конвенции:

[A, B, C]

... Вы можете просто вызвать список метод TOSTRING () для получения вашего вывод (я не уверен, почему люди выступают с использованием цикла для этого). Это также может быть разумно, чтобы переопределить автомобиль метод TOSTRING () , чтобы вернуть человеческое описание объекта.

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

10
ответ дан 3 December 2019 в 13:24
поделиться
for (Car car : carsList) {  // carsList is the object of List<Car>
    System.out.println(car);
}

Примечание. Приведенное выше отобразится значимое сообщение только при переоценке метода TOSTRING () класса автомобиля.

E.G

public class Car {

    private String carName;

    ....
    ....

    public String toString() {
        return carName;
    }
}

Метод TOSTRING () должен быть переопределен для возврата значимой информации о объекте в форме строки.

В вашем случае, я думаю, что значимая информация будет все детали автомобиля. Таким образом, метод переопределения TOSTRING () является лучшим подходом вместо использования GetCarkAme () или аналогичных методов.

-2
ответ дан 3 December 2019 в 13:24
поделиться
Другие вопросы по тегам:

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