我只是在这个方法中寻找每个产品带来的所有注解,但是结果将是一个数组,因此我只是想知道如何以一种简单的方式将其转换为一个唯一的数组。
这是我 swagger 的结果:
"all_comments": [
[
"comment 1 test a ver si sirve",
"comment 34 test a ver si sirve test 34"
],
["comment 2xxxxxxxxx",
"comment yyyyyyyy"
]
]
我们的想法是:
"all_comments": [
"comment 1 test a ver si sirve",
"comment 34 test a ver si sirve test 34",
"comment 2xxxxxxxxx",
"comment yyyyyyyy"
]
在我的一个服务实现中,我设置的方法具有以下逻辑:
服务:
Map<String, Object> getAllComments() throws GeneralException
服务实施:
@Override
public Map<String, Object> getAllComments() throws GeneralException {
Map<String, Object> comments = new HashMap<>();
List<Set<Comments>> commentsSet = productRepository.findAll().stream()
.map(product -> product.getCommentsSet())
.collect(Collectors.toList());
comments.put("all_comments", commentsSet.stream()
.map(passList -> passList.stream()
.map(passSet -> passSet.getCommentBody()))
.collect(Collectors.toList()));
return comments;
}
3条答案
按热度按时间vngu2lb81#
你可以用
flatMap
方法:注:
这不是有效的json!{}意思是物体,
您需要的是:
这是一个有效的字符串数组。
332nm8kg2#
我只是修改了一些想法,比如将变量commentsset的类类型注解集列表更改为一个类型类注解列表。然后修改从存储库中带来的每个产品的逻辑,使用flatmap将获得的集合列表展平到一个数组中,然后将其收集到一个列表中。有点:
结果是:
im9ewurl3#
你可以用
Stream.flatMap
方法将集合列表展平为单个数组,如下所示:另请参见:将二维数组中每列的所有元素相加