• java8 新特性


    对java8 新特性的整理

      1.lambdab表达式

      例如:

         //lambda一般只有一行代码
            

         // 相当于ArrayList集合 List<Integer> integers = Arrays.asList(1, 1, 4,5,6,7,8);
      
         //进行遍历 Arrays.asList(1, 1, 4,5,6,7,8).forEach(a -> System.out.println(a));

       //引用类的局部变流量,隐式转化为final,这样效率会更高,这个变量str将不能被改变 String str = ","; //等价于:final String str = ","; Arrays.asList( "a", "b", "c" ).forEach( e -> System.out.print( e + str ) ); //进行排序 List<Integer> list = Arrays.asList(4, 2, 1, 3); list.sort((a1,b1) -> a1.compareTo(b1)); list.forEach(a -> System.out.println(a));

       

      

        List<MyTest2> list = Arrays.asList(
                    new MyTest2(5, "a"),
                    new MyTest2(12, "b"),
                    new MyTest2(11, "b"),
                    new MyTest2(8, "c")
            );
         // 计算满足条件的年龄和和 
    int b = list.stream().filter(x -> x.getName().equals("b")).mapToInt(MyTest2::getAge).sum();
         // parallel 支持并行处理
        
    int b = list.stream().filter(x -> x.getName().equals("b")).parallel().mapToInt(MyTest2::getAge).sum();
       // 另外一种写法 reduce 是提炼 新的值和原来的值进行叠加
      
    Integer b = list.stream().filter(x -> x.getName().equals("b")).parallel().map(MyTest2::getAge).reduce(0, Integer::sum);  
         // 进行分组
       Map<String, List<MyTest2>> collect = list.stream().collect(Collectors.groupingBy(MyTest2::getName)); 
        结果:{a=[MyTest2(age=5, name=a)], b=[MyTest2(age=12, name=b), MyTest2(age=11, name=b)], c=[MyTest2(age=8, name=c)]}
         
        // 字符串拼接
        String reduce = list.stream().mapToInt(MyTest2::getAge).mapToObj(x -> x + ",").reduce("", String::concat);
       结果:
    5,12,11,8,
      
     
            System.out.println(b);


      optional 新增的类库

      可以解决java空指针异常的情况.

    List<MyTest2> list = Arrays.asList(
    new MyTest2(5, "a"),
    new MyTest2(12, "b"),
    new MyTest2(11, "b"),
    new MyTest2(8, "c")
    );

    int b = list.stream().filter(x -> x.getName().equals("b")).mapToInt(MyTest2::getAge).sum();
    System.out.println(b);
  • 相关阅读:
    Java
    Java
    Java
    Java
    Java
    Hang Gliding线段树
    Biggest Number深搜
    2021年暑假康复性训练(Codeforces Round #731 (Div. 3))全题解
    Python GUI tkinter 随机生成题目
    ModuleNotFoundError: No module named ‘exceptions‘ 情况解决
  • 原文地址:https://www.cnblogs.com/chengyangyang/p/9552255.html
Copyright © 2020-2023  润新知