【问题标题】:How to construct a nested map from tuples (or something similar)?如何从元组(或类似的东西)构造嵌套地图?
【发布时间】:2017-04-18 03:11:20
【问题描述】:

在 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?

我尝试过 toMap 并且我知道 groupingBy 但由于某种原因我无法让它嵌套,因为我在上面设置它的方式只是返回一个布尔流......

关于如何重组它以便正确映射它们的任何建议?

【问题讨论】:

    标签: java dictionary nested tuples


    【解决方案1】:
    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)
        ));
    }
    

    我想,那个位置是字符串和用户名。

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 1970-01-01
      • 2017-02-13
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多