使用java8中stream,遍历二维数组的情况,使用下标,并且往每行添加数据
Object[][] newData = IntStream.rangeClosed(1, data.length).mapToObj(i -> {//rangclosed 闭区间,[1,数组长度]
List list = new ArrayList(Arrays.asList(data[i - 1]));//下标:数组长度-1
list.add(index, i);
return list.toArray();
}).toArray(Object[][]::new);
知识点:
使用IntStream流来构造一个Int类型的流出来,然后遍历这个Int的流,list中的对象可以通过get方法来取。具体解决代码如下:
IntStream.range(0, lists.size())
.mapToObj(i -> handle(lists.get(i), i))
.collect(Collectors.toList());
可以看到代码里的这一句:handle(lists.get(i), i),这样就成功的把索引带入到了handle方法中。
需要注意的是:在流中必须使用mapToObj,而不能使用map映射