【问题标题】:Simplify nested loop over map简化地图上的嵌套循环
【发布时间】:2019-12-28 23:20:51
【问题描述】:

我确定我不需要嵌套的内部循环,但是如何通过一个循环来实现,任何循环都可以,只是想摆脱嵌套循环。

for (List<GoogleUsageMapping> recordsMap : recordsGroupByMetadataId.values()) {
    for (GoogleUsageMapping record : recordsMap) {
        System.out.println(record.getUsage());
    }
}

【问题讨论】:

    标签: java for-loop nested-loops


    【解决方案1】:

    没有办法摆脱它。

    但你当然可以隐藏它。尽管如此,它仍然是一个变相的嵌套循环。示例:

    recordsGroupByMetadataId.values()
        .stream()
        .flatMap(List::stream)
        .map(GoogleUsageMapping::getUsage)
        .forEach(System.out::println);
    

    Stream::flatMap (documentation) 将多个流合并为一个大流,这就是将嵌套循环扁平化为一个大循环的原因。

    【讨论】:

    • 感谢您的回复,那只是我的一厢情愿:)
    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2012-06-23
    • 2022-12-07
    相关资源
    最近更新 更多