JDK1.8 Java8 实用新特性---Lambda表达式

Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。java

下面这个例子就是使用"匿名类写法"与"Lambda语法"进行作了一个对比,代码不只简洁,并且还可读。ide

public static void main(String[] args) {
        List<String> list = Arrays.asList(new String[]{"2", "1", "3"});
        System.out.println(list);

        //排序; 使用匿名类写法
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        System.out.println(list);

        //排序; 使用lambda写法
        Collections.sort(list,(str1,str2) -> str2.compareTo(str1));
        System.out.println(list);
    }

线程使用lambda举例:函数

public static void main(String[] args) {
        /** 
         * 线程举例
         * */
        //传统写法
        Thread td = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("hello world");
            }
        });
        td.start();
        //lambda写法(简洁写法)
        Thread td1 = new Thread(() -> System.out.println("hello lambda"));
        td1.start();
        //lambda写法(完整写法)
        Thread td2 = new Thread(() -> {
            System.out.println("hello lambda(*^▽^*)");
        });
        td2.start();
    }

接口实现接口中方法使用lambda语法:线程

public static void main(String[] args) {
        //lambda简洁写法
        MathOperation mo1 = (a,b) -> a+b;
        //lambda完整写法
        MathOperation mo2 = (c,d) -> {
            System.out.println("aaaa");
            return c+d;
        };
        System.out.println(mo1.operation(1,2));
        System.out.println(mo2.operation(1,2));
    }
    interface MathOperation{
        int operation(int a,int b);
        //String operation1(String a,String b);
    }

使用lambda实现集合遍历中操做两种方式: 转大写举例设计

@Test
    public void convertTest(){
        List<String> collected = new ArrayList<>();
        collected.add("java");
        collected.add("holle");
        collected = collected.stream().map(string -> string.toUpperCase()).collect(Collectors.toList());
        System.out.println(collected);
    }

    @Test
    public void convertTest2(){
        List<String> collected = new ArrayList<>();
        collected.add("java");
        collected.add("holle");
        //collected = collected.stream().map(String::toUpperCase).collect(Collectors.toList());
        collected = collected.stream().map(String::toUpperCase).collect(Collectors.toCollection(ArrayList::new));
        System.out.println(collected);
    }

点赞, 关注我呀~~~code

相关文章
相关标签/搜索