我想从自定义对象列表中创建一个特定的项目列表:
List<Long> getIdList(List<MyObject> items) {
List<Long> result = new ArrayList<>();
for (MyObject obj : items) {
result.add(obj.getId());
}
return result;
}
有更有效的方法吗?
答案 0 :(得分:2)
long[] getIdList(List<MyObject> items) {
return items.stream().mapToLong(item -> item.getId()).toArray();
}
在 Java8 中,您可以使用map
来获得收益。
答案 1 :(得分:1)
如果性能问题,请尝试这样做,
long[] getIdList(List<MyObject> items) {
long[] result = new long[items.size()];
int i = 0;
for (MyObject obj : items) {
result[i] = obj.getId();
}
return result;
}
class MyObject
{
long id;
public void setId(long i)
{
id = i;
}
public long getId()
{
return id;
}
}