在Java中, 我需要创建一个如下所示的地图:
(为清楚起见,这是一个用户名到布局的位置的地图)
Map<String, Map<String, Boolean>> someMap =
usernameStream.stream().
.flatMap(username -> locations.stream().map(
loc -> getSomeBooleanFromInfo(username, loc))
.// somehow make this into a nested map?
我已经尝试过map并且我知道groupingBy但是由于某些原因我只是无法让它嵌套,因为我在上面设置它的方式只返回一个布尔流......
有关如何对其进行重组的任何建议,以便我可以正确映射它们?
答案 0 :(得分:0)
private static boolean getSomeBooleanFromInfo(String username, String loc) {
return true;
}
public static void main(String[] args) {
List<String> usernames = new ArrayList<>();
List<String> locations = new ArrayList<>();
Map<String, Map<String, Boolean>> someMap = usernames.stream()
.collect(Collectors.toMap(
Function.identity(),
username -> locMap(username, locations))
);
}
private static Map<String, Boolean> locMap(String username, List<String> locations) {
return locations.stream().collect(Collectors.toMap(
Function.identity(),
loc -> getSomeBooleanFromInfo(username, loc)
));
}
我想,该位置是字符串以及用户名。