我正在写一个代码,它会计算国家的面积,它必须得到所有的值(省面积和州面积在数组中分开列出),然后把所有的值加起来。
这是我的国家班的代码:
import java.util.*;
public class Country implements Stats {
public String name;
ArrayList<Integer> provincesAreas = new ArrayList<>();
ArrayList<Integer> statesAreas;
public Country(String name, ArrayList<Integer> provincesAreas, ArrayList<Integer> statesAreas) {
super();
this.name = name;
this.provincesAreas = provincesAreas;
this.statesAreas = new ArrayList<Integer>();
}
public double computeArea() {
double parea=0;
for (Integer pA: provincesAreas) {
parea = parea + pA;
}
double sarea=0;
for (Integer sA: statesAreas) {
sarea+=sA;
}
return sarea+parea;
}
}
这是测试类构造函数
Country country = new Country ("Pakistan", new ArrayList<>(List.of(21, 62, 46, 98, 67, 34, 25, 9)), new ArrayList<>(List.of(1,2,3,4,5,6,7,8)));
System.out.println(country.computeArea());
它给我的输出是362.0,但应该是398.0
如何解决此错误?
4条答案
按热度按时间iyfjxgzm1#
您的测试类可能还有其他问题,您确定正确使用了“list.of”方法吗?
我在eclipse上出错了。
我试着修复你的代码,在构造器的主体中尝试这个:
fdx2calv2#
在你的第四行
Country
构造函数,不初始化this.stateAreas
到stateAreas
参数。你的
Country
构造函数应该是:eanckbw93#
你不是真的在构造函数中填充数组
3lxsmp7m4#
您没有存储
statesArea
参数,但正在将其初始化为空arraylist。