Java8 Lambda表达式

2018-04-21  本文已影响5人  SUNOW2

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));
    }
上一篇下一篇

猜你喜欢

热点阅读