列表 - 字符串Java 8 forEach功能。寻找我得到的输出的解释

时间:2017-03-30 20:50:31

标签: java-8

我正在尝试实现Java 8的每个函数。该程序打印列表内容列表。 (请查看我的代码,我的问题是在这篇文章的末尾) 以下是我的计划:

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;

public class OrderOfStrings {

    public static void main(String[] args) {

        List<String> list1 = new ArrayList<String>();
        List<String> list2 = new ArrayList<String>();

        list1.add("a");
        list2.add("b");
        list1.add("c");
        list2.add("d");
        list1.add("e");
        list2.add("f");

        List<ArrayList<String>> list3 = new ArrayList<ArrayList<String>>();
        list3.add((ArrayList<String>) list1);
        list3.add((ArrayList<String>) list2);


        list3.forEach(new Consumer<ArrayList<String>>(){

            @Override
            public void accept(ArrayList<String> t) {
                System.out.println( t.get(0));
                //System.out.println( t.get(1));


            }

        });


    }

}

该计划的输出:

a
b

我的问题是:如果我调用list3.get(0)我应该得到a,c,e?是不是?这是关于数据结构吗?

1 个答案:

答案 0 :(得分:1)

您编写的代码与Java 7中的以下代码相同:

for (ArrayList<String> t : list3) {
    System.out.println(t.get(0));
}

list3的内容如下:

[a,c,e],[b,d,f]

对于这两个列表中的每一个,您将在索引0处打印元素。在第一个子列表中,那将是a;在第二个,那将是b