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); 稍微尴尬,但它会完成工作,我想… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |