लूप का उपयोग करने का एकमात्र विकल्प पुनरावृत्ति का उपयोग करना है।
आप की तरह एक विधि को परिभाषित कर सकते हैं
public static int sum(List<Integer> ints) {
return ints.isEmpty() ? 0 : ints.get(0) + ints.subList(1, ints.length());
}
यह एक सादे लूप का उपयोग करने की तुलना में बहुत अक्षम है और सूची में कई तत्व होने पर आपको उड़ा सकता है।
एक विकल्प जो स्टैक ओवरफ्लो से बचने के लिए उपयोग करना है।
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));
}
यह सिर्फ अक्षम के रूप में है, लेकिन एक स्टैक अतिप्रवाह से बचना होगा।
एक ही बात लिखने का सबसे छोटा तरीका है
int sum = 0, a[] = {2, 4, 6, 8};
for(int i: a) {
sum += i;
}
System.out.println("sum(a) = " + sum);
प्रिंट
sum(a) = 20
ArrayListdoesn में कुछ ऐसा नहीं है जो "योग्य" है? ArrayList और एक सरणी जरूरी एक ही बात नहीं है। सरणी में संख्याओं के लिए, यह तत्वों पर लूप के लिए बहुत सरल है और एक संचयी राशि की गणना करता है।