MMTTMM
如果长度是,我会远离数组:未知可以换List我建议使用JDK的不同实现之一ArrayList,特别是LinkedList.第一个使用一个内部数组,如果添加一个元素,它可能会被扩展,并且会导致数组太小(它自己完成这一切,所以不用担心)。第二个是节点列表,这意味着对于您添加的每个元素,都会将一个新的(内部)节点对象附加到最后一个节点。您当然必须为此更改代码。将您定义_cities为List<City>:private List<City> _cities在构造函数中使用所需的实现对其进行初始化:_cities = new ArrayList<>();或_cities = new LinkedList<>();在您的 add 方法中,您只需调用:_cities.add(new City(cityName, XcityCenter, YcityCenter, XStationPoint, YStationPoint, numOfResidents, numOfNeighborhoods));在您的getNumOfResidents文件中,您可以使用以下代码段(它使用 Java 8 中引入的 Java 流式处理 API):return _cities.stream()
.mapToLong(City::getNumOfResidents)
.sum();因为getCities()您必须将返回类型更改为List<City>并使用以下内容:return new ArrayList<>(_cities)或return new LinkedList<>(_cities)取决于您要使用的实现。