創建list
// 最簡單的
List<String> strings = Lists.newArrayList("a", "b", "c", "d", "a");
List<String> strings2 = new ArrayList<>();
// 創建的list是不可變的
List<String> strings = Arrays.asList("a", "b", "c");
// 創建一個正常的list
List<String> strings1 = new ArrayList<>(Arrays.asList("a", "b", "c"));
快速創建一個map
// 正常創建map方法
Map<String, String> stringStringHashMap1 = new HashMap<>();
// 用谷歌的guava工具,創建的map是不可變的,也就是你不能進行修改
ImmutableMap<String, Integer> of = ImmutableMap.of("a", 1, "b", 2, "c", 3);
// guava工具還實現了創建者模式
ImmutableMap<Object, Object> build1 = ImmutableMap.builder().put("a", 1).put("b", 4).build();
快速創建一個set
// 用guava 快速創建一個set
ImmutableSet<Object> build2 = ImmutableSet.builder().add("a").add("b").build();
list 與array 互轉
List<Integer> numList = Lists.newArrayList(1, 2, 3, 4);
// list 轉 數組
Integer[] numArray = numList.toArray(new Integer[0]);
System.out.println("numArray = " + JSONObject.toJSON(numArray));
// lambda 表達式 數組轉list
List<Integer> newList = Arrays.stream(numArray).collect(Collectors.toList());
System.out.println("newList = " + JSONObject.toJSON(newList));
// Arrays工具轉成不可變的list
List<Integer> integers = Arrays.asList(numArray);
list 去重
// 基本類型去重
List<String> collect = list.stream().distinct().collect(Collectors.toList());
// 對象類型去重
List<Student> collect = students.stream()
.collect(
Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getA() + o.getB()))
), ArrayList::new)
);