Lambda 筛选字段中包含映射的对象,并在映射中搜索与所提供集合中至少一个键匹配的键
我有一个按包含时间的字段排序的集合Lambda 筛选字段中包含映射的对象,并在映射中搜索与所提供集合中至少一个键匹配的键,lambda,java-8,Lambda,Java 8,我有一个按包含时间的字段排序的集合 collectipsublishentityactual .stream() .sorted(Comparator.comparing)(PublishListenty::getInstant) .reversed()) .filter(PublishListenty->PublishListenty.getUrlsBundles() .entrySet() .stream() .filter(k->k.getKey().equals())?????????
collectipsublishentityactual
.stream()
.sorted(Comparator.comparing)(PublishListenty::getInstant)
.reversed())
.filter(PublishListenty->PublishListenty.getUrlsBundles()
.entrySet()
.stream()
.filter(k->k.getKey().equals())?????????
)
....
公共类PublishListenty实现可序列化{
私人地图urlsPack;
私人即时;
类PackId实现可序列化{
私有字符串字段1;
私有字符串字段2;
}
我还有一组键,键是一个由2个字符串字段(“F”,“1”)组成的对象
设置packIds;
我需要找到映射包含Set packIds中提供的键的实体
我发现执行过滤很困难,我只需要从实体集合中获取一个,第一个,它将在字段中包含一个映射,其中至少包含一个来自的键
集合作为键提供。您可以使用
anyMatch
按地图中存在的集合的任何键进行筛选,并通过findFirst
获取第一个
collectsPublishEntityActual
.stream()
.sorted(Comparator.comparing(PublishListEntity::getInstant)
.reversed())
.filter(publishListEntity -> packIds
.stream()
.anyMatch(k -> publishListEntity.getUrlsBundles().containsKey(k)))
.findFirst();
.
我建议在
filter
之后使用sorted
。为什么?我的意思是。它会给出什么?