2013-04-26 12 views
11

Gdybym miał: ArrayList<Double> m = new ArrayList<Double>(); z podwójnymi wartościami w środku, jak mam zrobić, aby dodać wszystkie elementy ArrayList?Suma wszystkich elementów tablicy tablic Javy

public double incassoMargherita() 
{ 
double sum = 0; 
for(int i = 0; i < m.size(); i++) 
{   
} 
return sum; 
} 

co?

+7

Jak o 'sum + = m.get (I) '? – dasblinkenlight

+4

Wskazówka: aby uzyskać wartość z listy w określonej pozycji, możesz użyć 'm.get (indexOfPosition)'. – Pshemo

+3

Alternatywnie, utwórz pętlę foreach i dodaj sumę do każdego elementu w foreach. – Makoto

Odpowiedz

32

dwa sposoby:

używających indeksów:

int i; 
double sum = 0; 
for(i = 1; i < m.size(); i++) 
    sum += m.get(i); 
return sum; 

użyć "dla każdego" styl:

double sum = 0; 
for(Double d : m) 
    sum += d; 
return sum; 
+0

lub Użyj: JAVA 8 int sum = list.stream(). MapToInt (Integer :: intValue) .sum(); –

+0

@AnandVarkeyPhilips to jak nuke do zabicia muchy: P – Barranka

+0

Jak myślisz, dlaczego? Czy powoduje degradację wydajności? Mniej i czysty kod, miałem nadzieję! –

4

Niezbyt trudne, wystarczy użyć m.get(i), aby uzyskać wartość z listy.

public double incassoMargherita() 
{ 
    double sum = 0; 
    for(int i = 0; i < m.size(); i++) 
    { 
     sum += m.get(i); 
    } 
    return sum; 
} 
4

Nie testowałem tego, ale powinno działać.

public double incassoMargherita() 
{ 
    double sum = 0; 
    for(int i = 0; i < m.size(); i++) 
    { 
     sum = sum + m.get(i); 
    } 
    return sum; 
}