java – 番石榴是否有一种将迭代转换为唯一类型的映射的方法?

前端之家收集整理的这篇文章主要介绍了java – 番石榴是否有一种将迭代转换为唯一类型的映射的方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我找不到一个方法在番石榴转换一个集合(或迭代器/迭代)到一个地图,类似于以下(通配符为清楚省略省略):
public static <T,K,V> Map<K,V> collectionSplitter(Collection<T> source,Function<T,K> kProducer,V> vProducer){
    Map<K,V> map = Maps.newHashMap();
    for(T t : source){
        map.put(kProducer.apply(t),vProducer.apply(t));
    }
    return map;
}

有没有现有的方法呢?最接近的是Splitter.keyValueSplitter(),如果T是一个String.

解决方法

我最了解的是 Maps.uniqueIndex – 这是关键方面,但不是价值方面…足够近了吗?

你可以使用:

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

稍微尴尬,但它会完成工作,我想…

原文链接:https://www.f2er.com/java/126378.html

猜你在找的Java相关文章