如何从元组(或类似的东西)构造嵌套映射?

时间:2017-04-18 03:11:20

标签: java dictionary nested tuples

在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但是由于某些原因我只是无法让它嵌套,因为我在上面设置它的方式只返回一个布尔流......

有关如何对其进行重组的任何建议,以便我可以正确映射它们?

1 个答案:

答案 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)
    ));
}

我想,该位置是字符串以及用户名。