gpt4 book ai didi

Java 流 : Extend Built-In Collector

转载 作者:行者123 更新时间:2023-12-05 00:37:25 25 4
gpt4 key购买 nike

我想知道是否可以从 java.util.stream.Collectors 扩展内置的 Java Stream 收集器类,而不是从头开始构建自定义收集器,因此复制已经在该类中实现的代码。

例如:假设我有 Stream<Map.Entry<String, Long>> mapEntryStream我想将其收集到 Map<String, Long> 类型的 map 中.

当然可以:

mapEntryStream.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

但是假设我想要像这样推断的键和条目:

//Not a real Java Collectors method
mapEntryStream.collect(Collectors.toMap());

那么我该如何制作一个收集器,就像上面那个一样,不带参数但调用 Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)

请注意:这不是关于这样的收集器是否应该 的问题 - 只有当它可以/strong> 被制作。

最佳答案

您不能向 Collectors 类添加方法。但是,您可以创建自己的实用程序方法来返回您想要的内容:

import java.util.Map;
import java.util.Map.Entry;
import java.util.stream.Collector;
import java.util.stream.Collectors;

public class MoreCollectors {

public static <K, V> Collector<Entry<K, V>, ?, Map<K, V>> entriesToMap() {
return Collectors.toMap(Entry::getKey, Entry::getValue);
}
}

关于Java 流 : Extend Built-In Collector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794376/

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