0
点赞
收藏
分享

微信扫一扫

java新特性之Stream,演变过程

遍历数组1.0

public static void ergodicList(List<Integer> list){

for (int i = 0; i < list.size(); i++) {

System.out.println(list.get(i));
}


}

看一下编译出的字节码

java新特性之Stream,演变过程_java

遍历List1.5

public static void ergodicList(List<Integer> list){

for (Integer temp : list) {

System.out.println(temp);
}


}

编译结果

java新特性之Stream,演变过程_jdk8新特性_02

遍历List 2.0

public static void ergodicList(List<Integer> list){

Stream<Integer> stream = list.stream();

// 使用consumer接口实现方法
Consumer<Integer> consumer = new Consumer<Integer>() {

@Override
public void accept(Integer temp) {
System.out.print(temp);
}
};

stream.forEach(consumer);


}

编译结果

java新特性之Stream,演变过程_Consumer_03

遍历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);


}

编译结果

java新特性之Stream,演变过程_Stream_04

遍历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一样

java新特性之Stream,演变过程_lamda表达式_05

遍历List 3.5

public static void ergodicList(List<Integer> list){

Stream<Integer> stream = list.stream();

stream.forEach(System.out::print);

}

编译结果

java新特性之Stream,演变过程_Consumer_06

遍历List 4.0

public static void ergodicList(List<Integer> list){

list.stream().forEach(System.out::print);

}

编译结果和3.5一样

java新特性之Stream,演变过程_lamda表达式_07

三重奏

java新特性之Stream,演变过程_java_08

不熟悉之前,先写匿名内部类,再逐步过度到lambda表达式

实在不行,先写匿名内部类,再在内名函数上用alt+enter,替换成lambda

java新特性之Stream,演变过程_lamda表达式_09 

 


举报

相关推荐

0 条评论