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

相關文章
相關標籤/搜索