gpt4 book ai didi

java - Guava 是否有将可迭代对象转换为唯一类型映射的方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:27 26 4
gpt4 key购买 nike

我在 guava 中找不到将 Collection(或 Iterator/Iterable)转换为 Map 的方法,如下所示(为清楚起见省略了通配符):

public static <T, K, V> Map<K,V> collectionSplitter(Collection<T> source, Function<T,K> kProducer, Function<T,V> vProducer){
Map<K,V> map = Maps.newHashMap();
for(T t : source){
map.put(kProducer.apply(t), vProducer.apply(t));
}
return map;
}

是否有任何现有方法可以做到这一点?如果 T 是字符串,我能找到的最接近的是 Splitter.keyValueSplitter()。

最佳答案

我知道最接近的是 Maps.uniqueIndex - 那是关键的一面,而不是值(value)的一面……足够接近了吗?

您可能会使用:

Map<K, V> map = Maps.transformValues(Maps.uniqueIndex(source, kProducer),
vProducer);

有点笨拙,但我认为它可以完成工作......

关于java - Guava 是否有将可迭代对象转换为唯一类型映射的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7758283/

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