遍历数组1.0
public static void ergodicList(List<Integer> list){
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
看一下编译出的字节码
遍历List1.5
public static void ergodicList(List<Integer> list){
for (Integer temp : list) {
System.out.println(temp);
}
}
编译结果
遍历List 2.0
public static void ergodicList(List<Integer> list){
Stream<Integer> stream = list.stream();
// 使用consumer接口实现方法
Consumer<Integer> consumer = new Consumer<Integer>() {
public void accept(Integer temp) {
System.out.print(temp);
}
};
stream.forEach(consumer);
}
编译结果
遍历List 2.5
public static void ergodicList(List<Integer> list){
Stream<Integer> stream = list.stream();
Consumer<Integer> consumer = (num) -> {
System.out.print(num);
};
stream.forEach(consumer);
}
编译结果
遍历List 3.0
public static void ergodicList(List<Integer> list){
Stream<Integer> stream = list.stream();
Consumer<Integer> consumer = num -> System.out.print(num);
stream.forEach(consumer);
}
编译结果和2.5一样
遍历List 3.5
public static void ergodicList(List<Integer> list){
Stream<Integer> stream = list.stream();
stream.forEach(System.out::print);
}
编译结果
遍历List 4.0
public static void ergodicList(List<Integer> list){
list.stream().forEach(System.out::print);
}
编译结果和3.5一样
三重奏
不熟悉之前,先写匿名内部类,再逐步过度到lambda表达式
实在不行,先写匿名内部类,再在内名函数上用alt+enter,替换成lambda