Bye*_*Bye 3 java java-8 java-stream
是否有可能(以简单的方式)将其更改为java8 Stream?(请不要评论/回答,如果你想告诉我两个for更好,而不是所有循环都应该改为流,这不是一个点)
final Map<String, String> map = new HashMap<>();
for(final Person person: list) {
for(final Internal internal: person.getInternals()) {
final String key = person.getName() + internal.getKey();
map.put(key, internal.getValue());
}
}
Run Code Online (Sandbox Code Playgroud)
主要问题是我无法使用,flatMap因为我将丢失以前的信息.每个创建key都是独特的.
那么你可以通过a传递它们Pair(虽然我没有编译过,但这个想法应该存在)
list.stream()
.flatMap(person -> person.getInternals()
.stream()
.map(internal ->
Pair.of(person.getName() + internal.getKey(), internal.getValue()))
.collect(Collectors.toMap(Pair::getLeft, Pair::getRight));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |