为了账号安全,请及时绑定邮箱和手机立即绑定

将数组转换为 LinkedList

将数组转换为 LinkedList

幕布斯6054654 2022-05-12 18:23:24
我想将以下代码从数组转换为任何其他方式(最重要的是有效),这意味着有无限的空间,我不必设置数组的长度。如何才能做到这一点?如何设置无限城市?使用链表这个想法是可以定义存储某些城市的某个国家(城市名称,市中心,中央汽车站,...... - 如下图所示) - 在我的代码中 MAX_NUM_CITIES = 1000;
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

如果长度是,我会远离数组:

  • 未知

  • 可以换

List我建议使用JDK的不同实现之一ArrayList,特别是LinkedList.

第一个使用一个内部数组,如果添加一个元素,它可能会被扩展,并且会导致数组太小(它自己完成这一切,所以不用担心)。

第二个是节点列表,这意味着对于您添加的每个元素,都会将一个新的(内部)节点对象附加到最后一个节点。

您当然必须为此更改代码。

  1. 将您定义_citiesList<City>private List<City> _cities

  2. 在构造函数中使用所需的实现对其进行初始化:_cities = new ArrayList<>();_cities = new LinkedList<>();

  3. 在您的 add 方法中,您只需调用:_cities.add(new City(cityName, XcityCenter, YcityCenter, XStationPoint, YStationPoint, numOfResidents, numOfNeighborhoods));

  4. 在您的getNumOfResidents文件中,您可以使用以下代码段(它使用 Java 8 中引入的 Java 流式处理 API):

    return _cities.stream()
        .mapToLong(City::getNumOfResidents)
        .sum();
  5. 因为getCities()您必须将返回类型更改为List<City>并使用以下内容:return new ArrayList<>(_cities)return new LinkedList<>(_cities)取决于您要使用的实现。


查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 217 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信