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);
}