- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有一种简洁、惯用的方法来从 Javaslang/Vavr List
创建顺序保留映射? List.toMap()
返回一个普通的 HashMap
,所以这并不能实现。我现在拥有的是这样的东西——
listOfKeys.foldLeft(
LinkedHashMap.<Key, Value>.empty(),
(m, k) -> m.put(k, valueFor(k))
);
--但这似乎比必要的更冗长,而且可能效率也较低。
最佳答案
Value.collect
方法(继承自 List
)通常用于此目的,类似于 Java 8 Stream 的 collect
方法。它需要一个收集器来执行可变缩减(参见注释)。瓦弗LinkedHashMap
提供静态 collector()
方法,因此您可以使用它来获取收集器的实例,该收集器将收集到 LinkedHashMap
。
listOfKeys.map(key -> new Tuple2<>(key, valueForKey(key)))
.collect(LinkedHashMap.collector());
我不确定它与你的解决方案相比表现如何,我不认为它在性能上会有差异,但作为一个额外的好处,它与 JDK 收集器兼容,所以你可以用它来收集轻松添加到 JDK 集合。
* 请注意,由于 Vavr 集合是不可变的,因此可变归约在此上下文中实际上并不可变。
关于list - 列表中的 Javaslang/Vavr LinkedHashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44187725/
我还在学习 Javaslang/Vavr,所以请原谅我的无知。我正在处理的项目停留在 Javaslang 2.1.0 上。 我的问题:是否有一种更“功能”的方式(而不是命令式风格)来构建我的代码,以便
我正在使用 Javaslang-2.1.0-alpha 和它的 Javaslang-match 来做一些对象分解。根据 this by blog Daniel 在“Match the Fancy wa
我有多个带有我创建的限定符的类: @ServiceComponent(restPath = "/trucks") public class TruckService { } @Serv
我目前正在查看 Javaslang 库,并且正在尝试将我的一些代码转换为 Javaslang。 我目前有这段代码,全是纯 Java Cell[][] maze; //from input Map ce
是否有一种简洁、惯用的方法来从 Javaslang/Vavr List 创建顺序保留映射? List.toMap() 返回一个普通的 HashMap,所以这并不能实现。我现在拥有的是这样的东西—— l
我们都熟悉 argument关于为什么String在 java 中是最终的。 但是,我想知道为什么 javaslang 的 CharSeq也是最终的。 鉴于 javaslang 的 FP 灵感以及 H
在 javaslang 中,如果我有 Stream ,当流中的任何项目包含已检查的异常时,我该如何抛出?我不能这样做,因为 peek 不接受抛出 lambda stream.peek(t -> t.o
这是我的代码片段: public static void main(String[] args) { Try.of(Main::getLines) .onFailur
我试图捕获特定的运行时异常(因此不可抛出)并记录它(log.error 具有 void 返回类型)。在 vavr 中执行此操作的最简单方法是什么? try { sayHello(); } ca
我有spring data JPA应用程序,我想使用jmh对应用程序进行基准测试。 我正在使用gradle构建工具,并为此使用gradle-jmh-plugin。 我的github仓库是here。 我
我是一名优秀的程序员,十分优秀!