只能迭代一个数组或java.lang.Iterable的实例?

时间:2017-09-05 19:48:29

标签: java foreach

我尝试为每个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);
        }
    });

2 个答案:

答案 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 );