gpt4 book ai didi

java - 将代码从 HashMap 转换为 ArrayList

转载 作者:行者123 更新时间:2023-12-01 14:17:16 26 4
gpt4 key购买 nike

我是 java 的新手,想知道如何将以下代码从使用名为 floorsMapHashMap 转换为使用 ArrayList 调用了 floorsArray

void randomizeQueues(String flag) {
double num = (flag.equals("enforce")) ? 0.99 : Math.random();
if (num > 0.5)
floorsMap.values().forEach(Floor::randomizeDestinations);
}

最佳答案

forEach 是终端操作;它什么都不返回;因此调用一个没有副作用的方法是一个什么都不做的操作。

我认为您正在寻找一系列操作,这些操作将结果转换并滚动到新的集合类型中。流 API 用于执行此操作:

List<Floor> randomizedFloors = floorsMap.values().stream()
.map(Floor::randomizeDestinations)
.collect(Collectors.toList());

编辑:

也许 randomizeDestinations 随机化“就地”并返回 void。在那种情况下,除非您有办法克隆 Floor 对象,否则您无法保持 map 完好无损,然后拥有一个包含随机目的地的列表,而您必须明确地创建该对象。你可以这样做:

List<Floor> randomizedFloors = floorsMap.values().stream().map(floor -> {
Floor clone = floor.makeACopy(); // you must write this
clone.randomizeDestinations();
return clone;
}).collect(Collectors.toList());

关于java - 将代码从 HashMap 转换为 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60915433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com