私はアンドロイドのゲームをプロファイリングして、それを見て驚いています:リストイテレータはヒープ割り当てを行いますか?
for(O o : myArrayList)
{
}
は、ヒープ割り当ての束を作成します。
ループに数値i++
を使用する以外にも、この問題を回避するにはより良い方法がありますか?イテレータや何かを事前に割り当てることはできますか?あなたはこのパターンを使用するのであればイテレータオブジェクトは、ヒープに割り当て取得されます
for(Iterator<O> iter = myArrayList.iterator(); iter.hasNext();)
{
O o = iter.next();
}
:
いいえ、パフォーマンスのペナルティはありません。 [1]この[応答]の[1] を見てみましょう:http://stackoverflow.com/questions/256859/is-there-a-performance-difference-between-a -for-for-each-loop –
私はパフォーマンスには関心がありません。私は自分のゲームでガベージコレクターを避けたいだけです。 – jmasterx