如何从对象的ArrayList获取属性列表

nin*_*nse 7 java arraylist

假设我有一个看起来像这样的对象:

public class Obj {
String foo;
String bar;
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个Obj类型的arraylist并填充它,有没有办法可以从ArrayList返回数组foo属性中所有对象的列表?

编辑:我应该更清楚,我不想通过迭代这样做

Sur*_*dip 10

试试这个:

Collection<String> names = CollectionUtils.collect(personList, TransformerUtils.invokerTransformer("getName"));  
Run Code Online (Sandbox Code Playgroud)

使用apache commons collection api.


Bri*_*new 7

你必须遍历你的List<Obj>并将foo条目整理成一个新的List

例如

List<String> foos = new ArrayList<String>();
for (Obj obj : objs) {
  foos.add(obj.foo)
}
Run Code Online (Sandbox Code Playgroud)

或者对于Java 8及更高版本,请使用以下流:

objs.stream().map(o -> o.foo).collect(toList());
Run Code Online (Sandbox Code Playgroud)

  • 我的第一个版本就是这样:`var foos = objs.Select(x => x.foo);`直到我意识到这是一个java问题.该死的你`LINQ`善良! (3认同)