我尝试为每个2d列表,将一个int []数组放到lambda中。编译器抱怨“只能迭代数组或java.lang.Iterable的实例”
List<int []> list2d = new ArrayList<>();
list2d.add(new int[] {1,3,5,7});
list2d.add(new int[] {2,4,6,8});
list.forEach((array)-> { */// why here array can't be iterated?*
for(int num: array) {
System.out.println(num);
}
});
答案 0 :(得分:0)
我在我的电脑上尝试了它并且它可以工作,但你需要使用正确的变量:
list.forEach((array)-> { // why here array can't be iterated?
for(int num: array) {
System.out.println(num);
}
});
你必须迭代list2d而不是列表,不是吗? 另外,请记住java中的注释在/ * * /之间或//之后//如果是一行。
答案 1 :(得分:0)
如果我理解正确,你想迭代数组元素中的元素。您可以使用以下内容实现此目的:
list2d.stream()
.flatMapToInt( Arrays::stream )
.forEach( System.out::println );