gpt4 book ai didi

java - 使用每种类型的计数将数组转换为 Javaslang Map

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:03 26 4
gpt4 key购买 nike

我目前正在查看 Javaslang 库,并且正在尝试将我的一些代码转换为 Javaslang。

我目前有这段代码,全是纯 Java

Cell[][] maze; //from input
Map<Cell, Long> cellCounts = Stream.of(maze)
.flatMap(Stream::of)
.collect(groupingBy(c -> c, counting()));

我正在考虑将其转换为 Javaslang,因为我对这个库很感兴趣,我只是想尝试一下。

我正在尝试做类似的事情,但转换为 Javaslang 映射而不是 java.util.Map。

到目前为止,我已经尝试过了,但由于看不到转换它的方法,我陷入了困境。

Array.of(maze)
.flatMap(Array::of)

所以我有我的 Cell 对象列表,但我想弄清楚如何将其转换为 javaslang.collection.Map

*编辑*

我已经考虑通过这个将我原来的 java.util.Map 转换为 javaslang.collections.Hashmap

HashMap<Cell, Long> cellsCount = HashMap.ofEntries(cellCounts
.entrySet()
.toArray(new Map.Entry[0]));

这似乎仍然不符合 Javaslang,但我会继续寻找。

最佳答案

通常,分组依据有另一种方法,该方法采用您尝试转换为的 Map 实现,但它必须是实际扩展 java.util.Map 的类型:

Collectors.groupingBy(classifier, mapFactory, downstream)

据我所知,javaslang.collection.Map 是一个接口(interface),而不是实际的实现。

由于没有可扩展 java.util.Map 的 javaslang Map 实现,您所能做的就是创建一个自定义收集器。

或者一旦已经收集到 java.util.Map - 将它们放入 javaslang.collection.Map 的某个实例中。

关于java - 使用每种类型的计数将数组转换为 Javaslang Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42535293/

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