我正在查看Javaslang库,我正在尝试将一些代码转换为Javaslang。将数组转换为Javalang映射每种类型的计数
目前,我有这段代码是所有纯Java
Cell[][] maze; //from input
Map<Cell, Long> cellCounts = Stream.of(maze)
.flatMap(Stream::of)
.collect(groupingBy(c -> c, counting()));
我一直在寻找这个转换为Javaslang,因为我感兴趣的图书馆,我只是想玩弄它。
我想做一个类似的事情,但转换为java.lang映射而不是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线,但我将继续寻找。
是否有扩展'java.util.Map'的'javaslang.collection.Map'的任何实现? – Eugene
不,从头开始重写了javaslang.collection.Map。他们采用了功能性的方法来设计它,并使所有的集合都不可变。 – Ash
Inmutable集合总是不是一个好主意。这取决于集合的大小 – xiumeteo