我有一个集合,我按照包含时间的字段进行排序。
collectsPublishEntityActual
.stream()
.sorted(Comparator.comparing(PublishListEntity::getInstant)
.reversed())
.filter(publishListEntity -> publishListEntity.getUrlsBundles()
.entrySet()
.stream()
.filter(k -> k.getKey().equals()) ?????????
)
....
public class PublishListEntity implements Serializable {
private Map<PackId, String> urlsPack;
private Instant instant;
class PackId implements Serializable {
private String field1;
private String field2;
}
我还有一个键的集合,键是一个由2个字符串字段("F","1"(组成的对象。
Set<PackId> packIds ;
我需要找到映射包含Set-packIds中提供的密钥的实体。
我发现很难执行筛选,我只需要从实体集合中获取一个,即第一个,它将在字段中包含一个映射,该映射至少包含一个来自SetpackId作为密钥提供。
您可以使用anyMatch
通过Map中存在的集合的任何密钥进行筛选,并通过findFirst
获得第一个密钥
collectsPublishEntityActual
.stream()
.sorted(Comparator.comparing(PublishListEntity::getInstant)
.reversed())
.filter(publishListEntity -> packIds
.stream()
.anyMatch(k -> publishListEntity.getUrlsBundles().containsKey(k)))
.findFirst();
.