Döngü kullanmanın tek alternatifi özyineleme kullanmaktır.
Gibi bir yöntem tanımlayabilirsiniz
public static int sum(List<Integer> ints) {
return ints.isEmpty() ? 0 : ints.get(0) + ints.subList(1, ints.length());
}
Bu, düz bir döngü kullanmaya kıyasla çok verimsizdir ve listede çok sayıda öğeniz varsa patlayabilir.
Yığın taşmasını engelleyen bir alternatif kullanmaktır.
public static int sum(List<Integer> ints) {
int len = ints.size();
if (len == 0) return 0;
if (len == 1) return ints.get(0);
return sum(ints.subList(0, len/2)) + sum(ints.subList(len/2, len));
}
Bu da aynı derecede verimsizdir, ancak yığın taşmasını önleyecektir.
Aynı şeyi yazmanın en kısa yolu
int sum = 0, a[] = {2, 4, 6, 8};
for(int i: a) {
sum += i;
}
System.out.println("sum(a) = " + sum);
baskılar
sum(a) = 20
ArrayList"toplanabilir" bir şey içermiyorsa? ArrayList ve bir dizi mutlaka aynı şey değildir. Bir dizideki sayıları toplamaya gelince, bu, elemanlar üzerinde çok basit bir döngüdür ve kümülatif bir toplamı hesaplar.