数千以上のエントリを持つ ArrayList を出力しようとしています (1 から 1000000 までのすべての素数を見つける必要があります)。プログラムの最後に、このメソッドを呼び出します。
println(myArrayList);
これは数百のエントリでのみ機能しますが、エントリが増えると素数を見つけるよりも配列リストを出力するのに時間がかかります。
それを繰り返した方が効率的でしょうか?または別のクラスを使用するには?
数千以上のエントリを持つ ArrayList を出力しようとしています (1 から 1000000 までのすべての素数を見つける必要があります)。プログラムの最後に、このメソッドを呼び出します。
println(myArrayList);
これは数百のエントリでのみ機能しますが、エントリが増えると素数を見つけるよりも配列リストを出力するのに時間がかかります。
それを繰り返した方が効率的でしょうか?または別のクラスを使用するには?
おそらくそれを反復する方が効率的でしょう。 println
を実行するだけで、最初にメモリ全体を構築するのではなく、直接印刷するだけで回避できるtoString()
大量の連結ガベージが生成されます。String
String
StringBuffer は、印刷するためのより効率的で高速な方法だと思います。ループ内で 1 つ作成し、最後に印刷するだけです。
コンソールに出力していますか? その場合、コンソール操作は他の出力操作 (ファイル、ソケットなど) よりも大幅に遅くなります。この速度の違いは、印刷する行数が多いほど明らかになります。
コンソールに出力する必要がある場合、「高速化」するためにできることはあまりありませんが、ファイルへの出力ははるかに高速になります。ファイルに出力するようにプログラムを変更すると、速度が向上することがわかります。