Java11新特性(1)

package demo;

import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class NewFeatures {

    public static void main(String[] args) {
        enhanceStream();
    }

    /**
     * 局部變量類型推斷
      */
    static void infoVarType() {
        var num = 123;
        var str = "123456";
        System.out.println(num);
        System.out.println(str);
    }

    /**
     * 字符串加強
     */
    static void enhanceString() {
        var str = " abcdefg ";
        System.out.println(str.strip());
        System.out.println(str.stripLeading());
        System.out.println(str.stripTrailing());
        System.out.println(str.repeat(2));
        System.out.println(str.codePointAt(2));
        System.out.println(str.codePointBefore(2));
        System.out.println(str.codePointCount(2,4));
        str.codePoints().forEach(i -> System.out.println(i));
        System.out.println(str.codePoints().sum());
    }

    /**
     * 集合增強  不可變集合 (繼承 AbstractImmutableList)
     */
    static void enhanceCollection() {
        var list = List.of("a", "b", "c");
        List<String> strings = List.copyOf(list);
        Map.of(1,"a", 2,"b");
        Set.of(1, 2, 3, 4);
    }

    /**
     * Stream增強
     * 和 filter 的區別, filter過濾所有滿足的數據, takeWhile和dropWhile過濾結果爲:第一個不滿足前滿足的數據
     */
    static void enhanceStream() {
        List<Integer> list = Stream.of(6, 1, 2, 3, 4, 5, 6, 7, 4).takeWhile(v -> v < 5).collect(Collectors.toList());
        list.forEach(v -> System.out.println(v));
        System.out.println("----------------");
        List<Integer> nums = Stream.of(1, 2, 3, 4, 3, 2, 1).dropWhile(v -> v < 3).collect(Collectors.toList());
        nums.forEach(v -> System.out.println(v));
    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章