我有如下的自定义对象列表:

List<CustomObject> existingValues


另一个具有ID的集合已从客户端发送,其中包含Set<Long> ids上方提到的CustomObject ID。

我的目标是使用CustomObject返回集合,该集合将仅包含ID相交的元素。

我可以简单地在每个循环中使用嵌套。但是看起来有点难看。

在SQL中,我可以对查询执行类似的操作:

select * where customobject.id in (some ids...)


lamdajguava可以实现它吗?

最佳答案

使用番石榴,可以按以下步骤进行:

    final Set<Long> ids = ...; //initialize correctly

    List<CustomObject> results = FluentIterable.from(existingValues).filter(new Predicate<CustomObject>() {
        @Override
        public boolean apply(final CustomObject input) {
            return ids.contains(input.getId());
        }
    }).toList();

关于java - 查找具有不同对象的集合之间的交集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30070432/

10-10 03:03