如何获取列表中对象的属性列表?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

如果有的话List<Person>,有没有可能得到所有的列表person.getName()?是否有一个准备好的调用,或者我必须写一个foreach循环,如:

List<Person> personList = new ArrayList<Person>();
List<String> namesList = new ArrayList<String>();
for(Person person : personList){
    namesList.add(personList.getName());
}
提问于
用户回答回答于

Java 8及以上:

List<String> namesList = personList.stream()
                                   .map(Person::getName)
                                   .collect(Collectors.toList());

如果你需要确保ArrayList因此,必须将最后一行更改为:

                                    ...
                                    .collect(Collectors.toCollection(ArrayList::new));
用户回答回答于

试试这个。

Collection<String> names = CollectionUtils.collect(personList, TransformerUtils.invokerTransformer("getName"));  

使用ApacheCommonsRecotionAPI。

扫码关注云+社区