【发布时间】:2019-07-05 22:01:25
【问题描述】:
我有一个实体列表,我需要使用过滤器和 Map 以及必要的键和值来删除其中的一些。
看起来是这样的。有List<Comment> commentsList 和Map<Integer, List<Post>> postsById。评论实体有方法getByPostId。地图看起来像<Post id, has amount of comments>。
我需要从 commentsList cmets 中删除与 Post 相关且少于 3 cmets 的 cmets。
我试着这样做:
Stream<E> ofAtLeastComments(Stream<E> comments, Stream<Post> posts, Integer count) {
Map<Integer, List<Post>> postById = posts
.collect(Collectors.groupingBy(Post::getId)
);
return comments
.filter(comment -> postById.get(comment.getCommentId()).size() >= count);
}
但它返回零值。
【问题讨论】:
-
您的地图键是帖子 ID,而不是评论 ID。
-
你的问题很混乱,没有提供足够的信息来说明你想要做什么。
-
@Alexey,请✓ 回答或更新您的问题。
标签: java lambda java-stream