gpt4 book ai didi

java - 在没有以前的 Collectors.toMap 的情况下提供 BiConsumer

转载 作者:行者123 更新时间:2023-11-29 07:32:26 30 4
gpt4 key购买 nike

我想从 BufferedReader 中读取行,将字符串分成两部分并将它们提供给 BiConsumer。是否可以在不事先将两个拆分字符串收集到 Map 的情况下完成?

例子:

bufferedReader.lines()
.collect(Collectors.toMap(l -> l.split(",")[0], l -> l.split(",")[1]))
.forEach(translations1::put);

是否可以通过某种方式删除 Collectors.toMap 来改善这一点?

最佳答案

我会做的是保留 toMap

Map<String, String> map = bufferedReader.lines()
.map(l -> l.split(",", 2))
.collect(Collectors.toMap(a -> a[0], a -> a[1]));

除非有我遗漏的要求,否则 toMap 似乎值得保留。

顺便说一下,如果你想要一个功能性的解决方案,你应该尽量避免 forEach 或任何修改状态的 lambda。它可以在 Java 中工作,但如果你能避免它,我相信你应该这样做。如果没有副作用,函数式编程是最清晰的。

关于java - 在没有以前的 Collectors.toMap 的情况下提供 BiConsumer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40153465/

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