我面临着迭代哈希映射列表的问题,我希望用模型映射特定的哈希映射。
result = {ArrayList@10441} size = 3
0 = {HashMap@10443} size = 3
0 = {HashMap$Node@10453} "Id" -> "3"
1 = {HashMap$Node@10454} "Name" -> "name3"
2 = {HashMap$Node@10455} "TimeSpent" -> "6543"
1 = {HashMap@10444} size = 3
2 = {HashMap@10445} size = 3
我试图以这样的方式迭代:
list.forEach(e -> SourceTargetMapper.MAPPER.toModel(new Source((Map<String, Object>) e)))
'toModel()'返回这样一个模型:
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class Foo {
private Long id;
private String name;
private Long timeSpent;
}
但我无法收集映射模型再次列出。我怎么能这样做?
答案 0 :(得分:1)
foreach()
不是为了映射流元素而设计的:它是一个使用Consumer
“消耗”流的终端操作。
相反,将map()
与collect()
一起使用(假设Model
是toModel()
的返回类型:
List<Model> models =
list.stream()
.map(e -> SourceTargetMapper.MAPPER.toModel(new Source((Map<String, Object>) e)))
.collect(Collectors.toList());