在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();
}