gpt4 book ai didi

java - 如何在 Stream.collect 中为 HashMap 使用双冒号?

转载 作者:行者123 更新时间:2023-12-02 07:31:56 27 4
gpt4 key购买 nike

我想通过使用第一列作为键,第二列作为值,并忽略第三列,将 csv 文件读入哈希表。

我编写了以下代码并且它有效。我想知道如何用双冒号“::”重写语法。

我检查了 API 文档,但大多数示例都使用 List 而不是 Map。

我使用字符串来模拟 csv 文件:"A,1,!","B,2,@","C,3,#","D,4,$","E,5, %”

Map<String,String> maps = Stream.of("A,1,!","B,2,@","C,3,#","D,4,$","E,5,%")
.collect(() -> new HashMap<String,String>(),
(map, line) -> {String x[] = line.split(","); map.put(x[0],x[1]);},
(map1, map2) -> map1.putAll(map2));
System.out.println(maps);

谢谢,
伊恩

最佳答案

就我个人而言,我会这样做:

Map<String, String> maps = Stream.of("A,1,!", "B,2,@", "C,3,#", "D,4,$", "E,5,%").
map(line -> line.split(",")).
collect(HashMap::new, (map, line) -> map.put(line[0], line[1]), HashMap::putAll);

即将逻辑分离为不同的流转换操作。在 collect 中执行 map 掩盖了代码的意图。

关于java - 如何在 Stream.collect 中为 HashMap 使用双冒号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22553611/

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