2013-04-26 71 views
11

Nếu tôi có: ArrayList<Double> m = new ArrayList<Double>(); với các giá trị kép bên trong, tôi nên làm gì để thêm tất cả các phần tử ArrayList?Tổng hợp tất cả các phần tử mảng java

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

là?

+7

Làm thế nào về 'tổng + = m.get (i) '? – dasblinkenlight

+4

Gợi ý: để lấy giá trị từ danh sách tại vị trí đã chỉ định, bạn có thể sử dụng 'm.get (indexOfPosition)'. – Pshemo

+3

Cách khác, tạo vòng lặp foreach và thêm tổng cho từng phần tử trong foreach. – Makoto

Trả lời

32

Hai cách:

Sử dụng chỉ số:

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

Sử dụng "cho mỗi" phong cách:

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

hoặc Sử dụng: JAVA 8 int sum = list.stream(). MapToInt (Integer :: intValue) .sum(); –

+0

@AnandVarkeyPhilips giống như sử dụng một nuke để giết một con ruồi: P – Barranka

+0

Tại sao bạn nghĩ nó là ?? Liệu nó gây ra sự xuống cấp hiệu suất? Ít hơn và sạch Code, tôi đã hy vọng! –

4

Không quá khó, chỉ cần sử dụng m.get(i) để lấy giá trị từ danh sách.

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

Tôi chưa thử nghiệm nhưng nó sẽ hoạt động.

public double incassoMargherita() 
{ 
    double sum = 0; 
    for(int i = 0; i < m.size(); i++) 
    { 
     sum = sum + m.get(i); 
    } 
    return sum; 
} 
Các vấn đề liên quan