3 回答
![?](http://img1.sycdn.imooc.com/5333a1a90001c8d802000200-100-100.jpg)
TA贡献1785条经验 获得超8个赞
您可以使用的一个IntStream索引List:
Map<String,String> map =
IntStream.range(0,list.size()/2)
.boxed()
.collect(Collectors.toMap(i->list.get(2*i),i->list.get(2*i+1)));
假设List元素的数量为偶数。
![?](http://img1.sycdn.imooc.com/54584c910001b8d902200220-100-100.jpg)
TA贡献1785条经验 获得超4个赞
您可以使用toMap方法
公共静态Map toMap(Object [] array)
将给定的数组转换为Map。数组的每个元素必须是Map.Entry或Array,至少包含两个元素,其中第一个元素用作键,第二个元素用作值。
此方法可用于初始化:
//创建一个Map映射颜色。映射colorMap = ArrayUtils.toMap(new String [] [] {{“ RED”,“#FF0000”},{“ GREEN”,“#00FF00”},{“ BLUE”,“#0000FF”}})); 对于空输入数组,此方法返回null。
参数:array-一个数组,其元素为Map.Entry或包含至少两个元素的Array,可以为null
返回:从数组创建的Map
抛出:IllegalArgumentException-如果此Array的一个元素本身就是一个包含少于两个元素的Array IllegalArgumentException-如果该数组包含除Map.Entry和Array之外的其他元素
因此,您可以按以下方式使用它
Map map = ArrayUtils.toMap(arrayName);
而且您必须首先从以下位置导入ArrayUtils:
import org.apache.commons.lang3.ArrayUtils;
注意:这不是内置方法。您需要Apache Commons依赖项!
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
TA贡献1799条经验 获得超6个赞
流一次只看一项,它们彼此独立。这是为了允许并行流可以保留或不保留顺序。
Java Streams不适合您要在此处执行的任务。首先将数据按摩到单个原子对象中。在这种情况下,可以通过索引或使用迭代器进行普通的for循环。
添加回答
举报