java - 简化 map 上的嵌套循环

标签 java for-loop nested-loops

我确信我不需要嵌套的内循环,但是如何用一个循环来实现这一点,任何循环都可以,只是想摆脱嵌套循环。

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

最佳答案

没有办法摆脱它。

但是您当然可以隐藏它。但它仍然是一个伪装的嵌套循环。示例:

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

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

关于java - 简化 map 上的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57629577/

相关文章:

java - 如何设置jtextarea的自动大小随单词长度变化

java - 编译java程序出错

java - 嵌套 for 循环在两个字符串之间迭代

php - 使这个 Magento 嵌套循环更好

java - 为什么 Java 编译器默认不缩短名称? (性能和混淆)

java - java 程序中的素数切换有意外的输出

python - [for 'elem' in myList] 与 [for 'i' in range(x, y)] 的区别是什么,引用列表元素

java - JLabel's Set Location inside 移动不流畅

Java乘法表

java - 创建有向图