Map

  1. 逐个初始化
  2. java8及以前

    1. Map<Character, Integer> map = new HashMap<Character, Integer>(){{
    2. put('+', 1);
    3. put('-', 1);
    4. put('*', 2);
    5. put('/', 2);
    6. }};

    java9新特性

    1. //此方法生成的map为不可变类型
    2. Map<String, String> map = Map.of(
    3. "a", "b",
    4. "c", "d");

    Set

    java5及之前

  3. 使用另一个Collection类实例

    1. Set<String> set = new HashSet<>(Arrays.asList("a", "b", "c"));
  4. 使用匿名类

    1. //相当于一个Set类的实现类内用了一个初始化块
    2. Set<Character> set = new HashSet<>(){{
    3. add('a');
    4. add('e');
    5. add('i');
    6. add('o');
    7. add('u');
    8. }};

    java8

    1. Set<Character> set = new HashSet<>();
    2. Collections.addAll(set, 'a', 'e', 'i', 'o', 'u');

    java9

    1. //Java9支持!此方法生成的set不可变!
    2. Set<Character> set = Set.of('a', 'e', 'i', 'o', 'u');