将两个for循环组合成一个

时间:2014-08-26 23:13:31

标签: java for-loop performance

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

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

有更有效的方法吗?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

不,没有办法以有意义的方式进一步优化它:appendTiles的代码必须遍历Line内的所有columns个对象,尽管实际的对象是在二维结构内部(List s的集合)。无论如何,您必须访问line.linkline.text。这是该方法的“有效载荷”;它不会改变,即使你设法通过使用流将两个循环组合成一个。