我想将以下代码从数组转换为任何其他方式(最重要的是有效),这意味着有无限的空间,我不必设置数组的长度。如何才能做到这一点?如何设置无限城市?使用链表这个想法是可以定义存储某些城市的某个国家(城市名称,市中心,中央汽车站,...... - 如下图所示) - 在我的代码中 MAX_NUM_CITIES = 1000;
1 回答
MMTTMM
TA贡献1869条经验 获得超4个赞
如果长度是,我会远离数组:
未知
可以换
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)
取决于您要使用的实现。
添加回答
举报
0/150
提交
取消