以下は不必要なメモリ使用量を生み出しますか
String[] words = text.split(" ");
for (String s : words)
{...}
text.split(" ")
または、ループが繰り返されるたびに次の呼び出しを行いますか
for (String s : text.split(" "))
{...}
どちらの方法がより好ましいでしょうか?
ループを作成する各方法には利点があります。
for
検査することができますwords
words
ため、他の場所でその名前を使用できます。パフォーマンスと可読性に関しては、どちらの方法も同じように優れsplit
ています。ループの開始前に1回呼び出されるため、2番目のコードスニペットを使用してもパフォーマンスやメモリ使用量に影響はありません。
以来、パフォーマンスの点で違いはないと思います:
String[] words = text.split(" ");
for (String s : words)
{...}
text.split(" ")
によって生成された単語をさらにデータ操作に使用できるため、使用する必要があります。2 番目のアプローチでは、ループ内の単語のみを使用できます。
次のコードでは、getList() は 1 回だけ呼び出されます。したがって、あなたが尋ねた2つの方法について、パフォーマンスに関して違いはないと思います。
class Test {
static int[] list = {1,2,3,4,5};
static int[] getList() {
System.out.println("getList executed");
return list;
}
public static void main(String[] args) {
for(int n: getList()) {
System.out.println("n = "+n);
}
}
}
出力:
getList executed
n = 1
n = 2
n = 3
n = 4
n = 5