2

我正在尝试打印一个包含数千个条目的 ArrayList(它必须找到 1 到 1000000 之间的所有素数)。在程序结束时,我调用了这个方法:

println(myArrayList);

虽然这仅适用于几百个条目,但一旦有更多条目,打印数组列表要比查找素数花费更多的时间。

迭代它会更有效吗?或者使用不同的类?

4

3 回答 3

0

迭代它可能会更有效。 println只会做 a toString(),这会产生很多串联垃圾,您可以通过直接打印而不是先在内存中String构建整个垃圾来避免这些垃圾。String

于 2012-10-24T19:22:29.583 回答
0

我相信 StringBuffer 是一种更高效、更快捷的打印方式。只需在循环中构建一个并在最后打印它。

于 2012-10-24T19:22:32.500 回答
0

您要打印到控制台吗?如果是,控制台操作比任何其他输出操作(文件、套接字等)都要慢得多。打印的行越多,这种速度差异就越明显。

如果您需要打印到控制台,那么“加速”您无能为力,但打印到文件会快得多。更改您的程序,使其打印到文件中,您会发现速度有所提高。

于 2012-10-24T20:24:00.253 回答