Да, ваши циклы оптимизируются - будьте осторожны, Java умна и может даже оптимизировать такие вещи, как:
{
int a;
for(int b=0;b<10000;b++)
a++;
}
, потому что она может знать, что вы никогда не используете значение в!
Также, пожалуйста, измените первую часть вашей программы на:
int[] sizes = new int[] {100,1000,10000,100000,1000000};
и затем используйте в своем коде:
for(int size:sizes) {
ArrayList<Double> arrList = new ArrayList<Double>();
for (int i = 0; i < size; i++)
{
arrList.add(Math.random());
}
long startTime = System.currentTimeMillis();
double sum=0;
for (int i = 0; i < arrList.size(); i++)
sum=sum+arrList.get(i); // may need casting here
long total = System.currentTimeMillis() - startTime;
System.out.println("Loop for size:"+size+" Elapsed Time:" + total);
}
Способ, которым вы копировали, вставляли и редактировалився эта чушь ранит меня повсюду.Это так неправильно, даже делать это один раз - даже в качестве первого прохода.
Если вы когда-либо копируете и вставляете, когда кодируете, есть 95% вероятность, что вы делаете это неправильно.Если у вас когда-либо есть переменные с именами в конце, вы почти наверняка делаете это неправильно.Если вы обнаружите, что редактируете по какому-то шаблону, например, изменяете 1 на 2 в конце переменной в наборах кода, которые выглядят одинаково, то вы абсолютно уверены, что делаете это неправильно.
Вы увидите это, когда попытаетесь исправить код, который вы написали, вместо того, чтобы делать это так, как я указал выше.
--- Другое редактирование --- Изменено, чтобы оно могло что-то делать с результирующим значением--в этом случае он суммирует их, проходя по нему.Извините за ранее, я слишком быстро просматриваю вещи, но это должно, по крайней мере, что-то случиться.