加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 收集集合中对象的属性

发布时间:2020-12-15 03:01:07 所属栏目:Java 来源:网络整理
导读:在C#中,我可以这样做: IEnumerablelong ids = things.select(x = x.Id); 在Java中我必须这样做: CollectionLong ids = new ArrayListLong(things.size());for(Thing x : things) ids.add(x.getId()); 现在必须做很多这样的事情并且想知道在Java中是否有更
在C#中,我可以这样做:
IEnumerable<long> ids = things.select(x => x.Id);

在Java中我必须这样做:

Collection<Long> ids = new ArrayList<Long>(things.size());
for(Thing x : things)
   ids.add(x.getId());

现在必须做很多这样的事情并且想知道在Java中是否有更通用的方法来做这件事.可以创建一个方法来做到这一点,但后来我将不得不添加一个getId方法的接口或类似的…我不能…

解决方法

使用 Guava,特别是 function interface:
public class ThingFunction implements Function<Thing,Long> {
    @Override
    public Long apply(Thing thing) {
        return user.getId();
    }
}

并且像这样调用(其中transform是来自guava的Collections2的静态导入:

Collection<Long> ids = transform(things,new ThingFunction());

番石榴也有相当多的other benefits.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读