我正在尝试实现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?是不是?这是关于数据结构吗?
答案 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
。