Java 将2个集合转换为地图
我有两个同样大小的Java 将2个集合转换为地图,java,dictionary,lambda,java-8,java-stream,Java,Dictionary,Lambda,Java 8,Java Stream,我有两个同样大小的Lists作为List a和List b 在Java 8中使用lambdas或其他工具创建Map的最有效方法是什么,其中List a是键,List b是值 Java 7方式如下所示: Map<String, String> map = new HashMap<String, String>(); for(int i=0;i<a.size();i++) map.put(a.get(i), b.get(i)); Map Map=newhash
List
s作为List a
和List b
在Java 8中使用lambdas或其他工具创建Map
的最有效方法是什么,其中List a
是键,List b
是值
Java 7方式如下所示:
Map<String, String> map = new HashMap<String, String>();
for(int i=0;i<a.size();i++)
map.put(a.get(i), b.get(i));
Map Map=newhashmap();
对于(int i=0;i,因为流
上没有zip
操作(也没有对
类),一个简单的解决方案是使用IntStream
并循环每个列表
的索引
Map<String, String> map =
IntStream.range(0, a.size()).boxed().collect(Collectors.toMap(a::get, b::get));
或者没有装箱开销,但不那么简洁:IntStream.range(0,a.size()).collect(HashMap::new,(m,i)->m.put(a.get(i),b.get(i)),Map::putAll)
Map<String, String> map = EntryStream.zip(a, b).toMap();