加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 00:27:14 所属栏目:Java 来源:网络整理
导读:我找不到一个方法在番石榴转换一个集合(或迭代器/迭代)到一个地图,类似于以下(通配符为清楚省略省略): public static T,K,V MapK,V collectionSplitter(CollectionT source,FunctionT,K kProducer,V vProducer){ MapK,V map = Maps.newHashMap(); for(T t :
我找不到一个方法在番石榴转换一个集合(或迭代器/迭代)到一个地图,类似于以下(通配符为清楚省略省略):
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);

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读