我有如下的自定义对象列表:
List<CustomObject> existingValues
另一个具有ID的集合已从客户端发送,其中包含
Set<Long> ids
上方提到的CustomObject ID。我的目标是使用CustomObject返回集合,该集合将仅包含ID相交的元素。
我可以简单地在每个循环中使用嵌套。但是看起来有点难看。
在SQL中,我可以对查询执行类似的操作:
select * where customobject.id in (some ids...)
用
lamdaj
或guava
可以实现它吗? 最佳答案
使用番石榴,可以按以下步骤进行:
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/