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
。为什么?我的意思是。它会给出什么?