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

在Java中,从项目列表创建项目列表的最佳方法是什么?,java,list,Java,List,我想从自定义对象列表创建特定的项目列表: List<Long> getIdList(List<MyObject> items) { List<Long> result = new ArrayList<>(); for (MyObject obj : items) { result.add(obj.getId()); } return result; } List getIdList(列表

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

List<Long> getIdList(List<MyObject> items) {
     List<Long> result = new ArrayList<>();
     for (MyObject obj : items) {
          result.add(obj.getId());
     }
     return result;
}
List getIdList(列表项){
列表结果=新建ArrayList();
对于(MyObject对象:项目){
add(obj.getId());
}
返回结果;
}

有没有更有效的方法?

如果性能是一个问题,请尝试这样做

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;
    }
}
long[]getIdList(列表项){
long[]结果=新的long[items.size()];
int i=0;
对于(MyObject对象:项目){
结果[i]=obj.getId();
}
返回结果;
}
类MyObject
{
长id;
公共无效设置ID(长i)
{
id=i;
}
公共长getId()
{
返回id;
}
}
long[]getIdList(列表项){
返回items.stream().mapToLong(item->item.getId()).toArray();
}

Java8中,您可以使用
map
来产生收益。

Java8有一种方法可以做到这一点:谢谢!这是非常好的表演方式!但我想要最短的路:)
long[] getIdList(List<MyObject> items) {
    return items.stream().mapToLong(item -> item.getId()).toArray();
}