1.替代匿名内部类
使用匿名内部类
public void newThread() {
new Thread(new Runnable(){
@Override
public void run() {
System.out.println("创建一个线程");
}
}).start();
}
使用lambda表达式
public void createThread() {
new Thread(() -> {System.out.println("创建一个线程");}).start();
}
2.使用lambda表达式对集合进行迭代
public void testIter() {
List<String> iters = Arrays.asList("i", "am", "a", "boy");
// 常规方式
for(String iter : iters) {
System.out.print(iter);
}
// Java8 lambda表达式
iters.forEach(iter -> {System.out.print(iter);});
}
3.使用lambda表达式实现map
public void testMap() {
List<String> list = Arrays.asList("我", "是", "map");
// map是将一个对象变为另一个对象
list.stream().map(item-> item+item).forEach((item)->System.out.println(item));
System.out.println("list=" + list);
}
使用lambda表达式实现reduce
public void testReduce() {
List<Double> list = Arrays.asList(10.0, 20.0, 30.0);
double sumary = list.stream().map(item -> item + item*0.5).reduce((sum, x) -> sum+x).get();
System.out.println("sumary=" + sumary);
}
使用lambda表达式实现filter
public void testFilter() {
List<Double> list = Arrays.asList(10.0, 20.0, 30.0);
List<Double> list1 = list.stream().filter(item -> item < 25.0).collect(Collectors.toList());
list1.forEach(item -> System.out.println("item=" + item));
}