2013-04-16 53 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);