从Java中的项目列表创建项目列表的最佳方法是什么?

时间:2015-07-31 03:57:51

标签: java list

我想从自定义对象列表中创建一个特定的项目列表:

List<Long> getIdList(List<MyObject> items) {
     List<Long> result = new ArrayList<>();
     for (MyObject obj : items) {
          result.add(obj.getId());
     }
     return result;
}

有更有效的方法吗?

2 个答案:

答案 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;
    }
}