Pan*_*hal 3 java lambda dictionary java-8 java-stream
我有2 List秒List<String> a和List<String> b相同的大小.
Map<String, String>使用lambdas或其他什么List<String> a键创建Java 8 的最有效方法List<String> 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));
Run Code Online (Sandbox Code Playgroud)
由于没有zip操作Stream(并且没有Pair类),一个简单的解决方案是使用IntStream和循环遍历每个的索引List.
Map<String, String> map =
IntStream.range(0, a.size()).boxed().collect(Collectors.toMap(a::get, b::get));
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用提供方法的StreamEx库,zip并具有:
Map<String, String> map = EntryStream.zip(a, b).toMap();
Run Code Online (Sandbox Code Playgroud)