Bootstrap

技术日志2023-5-16

1、关于Java快速创建小集合的方式

1、可以直接使用 Arrays.asList(T… a) 来创建一个List。

Arrays.asList("1", "2", "1");

2、使用 Stream.of(T… values) 来快速创建一个List或Set

// 1.创建一个List
List<String> l2 = Stream.of("1", "2", "1").collect(Collectors.toList());
// 2.创建一个Set
Set<String> s1 = Stream.of("1", "2", "1").collect(Collectors.toSet());
// 3.创建一个去重List
List<String> l3 = Stream.of("1", "2", "1").distinct().collect(Collectors.toList());

3、guava项目下Lists.newArrayList(E… elements)方法

List<String> l0 = Lists.newArrayList("1", "2", "3");

4、ArrayList有一个构造方法可以接受列表来变为List
ArrayList(Collection<? extends E> c) {}

// Arrays创建的list为不可变list,可以这样变为一个可变list
ArrayList<String> l4 = new ArrayList<>(l1);
// set集合也可以用这样的方法变为一个list
ArrayList<String> l5OfS1 = new ArrayList<>(s1);

2、快速创建一个map

public static void test4() {
    // 正常创建map
    Map<Integer, String> m0 = new HashMap<>();
    m0.put(1, "一");

    // 使用guava工具快速创建,此map不可变
    Map<Integer, String> m1 = ImmutableMap.of(1, "一", 2, "二");
    // guava工具还实现了创建者模式, 这里不能设置为Map<Integer, String>
    Map<Object, Object> m2 = ImmutableMap.builder().put(1, "一").put(2, "二").build();
}

3、快速创建一个set

public static void test5() {
    // 使用guava工具快速创建set,这里也不能设置Set<String>
    ImmutableSet<Object> s0 = ImmutableSet.builder().add("1").add("2").build();
    System.out.println(s0);
}
;