美文网首页
Java8 Lambda表达式

Java8 Lambda表达式

作者: SUNOW2 | 来源:发表于2018-04-21 18:04 被阅读5次

    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));
        }
    

    相关文章

      网友评论

          本文标题:Java8 Lambda表达式

          本文链接:https://www.haomeiwen.com/subject/wioxlftx.html