【问题标题】:Combining two for loops into one将两个 for 循环合二为一
【发布时间】:2014-08-26 23:13:30
【问题描述】:

我正在尝试找到一种更好的方法来执行此方法。

private void appendTiles(StringBuilder builder, String taggedRefData) {
    for (List<Line> column : columns) {
        for (Line line : column) {
            builder.append(line.link).append(line.text);
        }
    }
}

有没有更有效的方法?

【问题讨论】:

  • taggedRefData 未使用。
  • 尝试在 CodeReview 上发布此内容。
  • 如果您重新考虑数据结构的选择,可能会进行优化。事实上,程序优化通常与数据结构有关。在查看columns 时不要停下来,还要重新考虑这个字符串附加程序实际上有多么有用。也许您可以直接写入流?或者使用输入类型....

标签: java for-loop performance


【解决方案1】:

不,没有办法以有意义的方式进一步优化它:appendTiles 的代码必须遍历 columns 内的所有 Line 对象,尽管实际对象位于二维结构内(Lists 的集合)。一种或另一种方式,您必须访问line.linkline.text。这是方法的“有效载荷”;即使您设法通过使用流将两个循环合并为一个,它也不会改变。

【讨论】:

    【解决方案2】:

    不,你有一个列表列表,总会有两个循环。即使在 Java 8 中,您也可以使用流和 flatMap,它们仍然会在内部使用 2 个循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多