2013-04-16 52 views
0

我必须找到每个矩形区域的平均总和。我可以找到每个矩形的面积,我应该将每个区域存储到一个数组中并通过它找到平均值?或者这是不可能的?矩形区域的平均值

ArrayList<Rectangle> list = new ArrayList<Rectangle>(); 
    list.add(new Rectangle(0, 0, 25, 50)); 
    list.add(new Rectangle(0, 0, 10, 30)); 
    list.add(new Rectangle(0, 0, 100, 40)); 
    list.add(new Rectangle(0, 0, 40, 45)); 
    list.add(new Rectangle(0, 0, 13, 13)); 

    double aAvg = 0.0; 
    for (int i = 0; i < list.size(); i++) { 
     double h = list.get(i).getHeight(); 
     double w = list.get(i).getWidth(); 
     double area = h * w; 
     System.out.println(area); 
    } 
+0

不能相信我overthought这... – qvd

回答

1

基本上,你只需要总结各地区一起

double sum = 0.0; 
for (int i = 0; i < list.size(); i++) { 
    double h = list.get(i).getHeight(); 
    double w = list.get(i).getWidth(); 
    double area = h * w; 
    sum += area; 
} 

然后计算基于关闭该值的平均...

double aAvg = sum/(double)list.size(); 

除非你所需要的区域的列表,应该不需要维护另一个列表。更简单(更安全)来计算它,因为你需要它(在这种情况下)...

+0

哦... -_____-原谅我,而我去拍摄自己... – qvd

+0

欢迎来到森林里,你不会看到太多的树木; ) – MadProgrammer

0

试试这个。

ArrayList<Rectangle> list = new ArrayList<Rectangle>(); 
    list.add(new Rectangle(0, 0, 25, 50)); 
    list.add(new Rectangle(0, 0, 10, 30)); 
    list.add(new Rectangle(0, 0, 100, 40)); 
    list.add(new Rectangle(0, 0, 40, 45)); 
    list.add(new Rectangle(0, 0, 13, 13)); 

    double aAvg = 0.0; 
    double totalArea = 0.0; 
    for (int i = 0; i < list.size(); i++) { 
     double h = list.get(i).getHeight(); 
     double w = list.get(i).getWidth(); 
     double area = h * w; 
     totalArea += area; 
     System.out.println(area); 
    } 
    aAvg = totalArea/list.size(); 

    System.out.println("Average area : " + aAvg);