我正在尝试打印一个包含数千个条目的ArrayList(它必须找到1到1000000之间的所有素数)。在程序结束时,我称之为:
println(myArrayList);
虽然这只适用于几百个条目,但是一旦有更多条目,打印数组列表需要花费更多时间而不是找到素数。
迭代它会更有效吗?或者使用不同的类?
答案 0 :(得分:0)
迭代它可能会更有效率。 println
只会执行toString()
,这会产生大量String
和连接垃圾,只需直接打印而不是在内存中构建整个String
就可以避免第一
答案 1 :(得分:0)
我相信StringBuffer是一种更有效,更快速的打印方式。只需在循环中构建一个并在最后打印它。
答案 2 :(得分:0)
您是否正在打印到控制台?如果是,控制台操作明显慢于任何其他输出操作(文件,套接字等)。你印刷的线条越多,速度的差异越明显。
如果你需要的是打印到控制台,你可以做的“加速”,但打印到文件会快得多。更改您的程序,使其打印到文件,您会注意到速度的提高。