其他分享
首页 > 其他分享> > jdk10新特性--卷?

jdk10新特性--卷?

作者:互联网

var 局部类型推断

package jdk10;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Stream;

/**
 * 局部类型推断
 * 仅限带有初始化的程序的局部变量。
 * for 循环或者增强for 循环中。
 * for 循环中的声明
 */
public class VarDemo {
    public static void main(String[] args) {
        var hashMap = new HashMap<String, Object>();
        hashMap.put("name", "fly");
        var str = "hello java 10";
        var stream = Stream.of(1, 2);
        var list = new ArrayList<String>();

        var l = List.of(1, 2, 3);
        for (int i = 0; i < l.size(); i++) {
            System.out.println(l.get(i));
        }
        for (Integer integer : l) {
            System.out.println(integer);
        }
    }
}

Unicode 语言标签扩展

package jdk10;

import java.util.Arrays;
import java.util.Calendar;
import java.util.Currency;
import java.util.Locale;

/**
 * Unicode 语言标签扩展
 */
public class UnicodeDemo {
    public static void main(String[] args) {
        Currency chinaCurrency = Currency.getInstance(Locale.CHINA);
        Currency usCurrency = Currency.getInstance(Locale.US);
        System.out.println("本地货币:" + chinaCurrency); // 本地货币:CNY
        System.out.println("US.货币:" + usCurrency); // US.货币:USD

        String displayName = Locale.getDefault().getDisplayName();
        String displayCountry = Locale.getDefault().getDisplayCountry();
        String displayLanguage = Locale.getDefault().getDisplayLanguage();
        System.out.println("本地名称:" + displayName); //本地名称:中文 (简体,中国)
        System.out.println("本地语言:" + displayLanguage);//本地语言:中文
        System.out.println("本地国家:" + displayCountry);//本地国家:中国

        int firstDayOfWeek = Calendar.getInstance().getFirstDayOfWeek();
        System.out.println("本地每周第一天:" + firstDayOfWeek);//本地每周第一天:1
    }
}

Collection

package jdk10;

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;

public class CollectionDemo {
    // 通过 Collection.copyOf 复制得到一个不可改变集合,即使原来的集合元素发生了变化也不会有影响
    @Test
    public void copyof(){
        var list = new ArrayList<String>();
        list.add("name");
        list.add("age");
        // 不可改变集合
        List<String> copyList = List.copyOf(list);
        list.add("copy");
        System.out.println(copyList); //[name, age]
    }

    // 获取到 optional 中的 value , 但是如果 value 为 null ,就会抛出异常
    @Test
    public void orElseThrow(){
        String str = null;
        String s = Optional.of(str).orElseThrow();
    }

    // Collectors 可以直接指定收集的集合为不可变集合
    @Test
    public void toUnmodifiable(){
        var list = new ArrayList<String>();
        list.add("name");
        list.add("age");
        List<String> list1 = list.stream().collect(Collectors.toUnmodifiableList());
        Set<String> set = list.stream().collect(Collectors.toUnmodifiableSet());
    }
}

标签:java,--,list,System,特性,jdk10,util,println,import
来源: https://www.cnblogs.com/fly-book/p/16202485.html