Java 8 и выше:
List<String> namesList = personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
Если вам необходимо убедиться, что в результате вы получите ArrayList
, вам нужно изменить последнюю строку на:
...
.collect(Collectors.toCollection(ArrayList::new));
Java 7 и ниже:
Стандартный API-интерфейс сбора данных до Java 8 не поддерживает такое преобразование.Вам придется написать цикл (или обернуть его в какую-нибудь собственную функцию «map»), если только вы не обратитесь к более интересному API / расширению коллекции.
(Строки в вашем фрагменте Java в точности соответствуютя бы использовал строки.)
В Apache Commons вы могли бы использовать CollectionUtils.collect
и Transformer
В Гуаве вы могли быиспользуйте метод Lists.transform
.