Java 工具类(列表)

去重

对列表进行保留顺序的去重

List<Integer> list = List.of(1, 2, 4, 3, 1);
LinkedHashSet<Integer> set = new LinkedHashSet<>(list);
ArrayList<Integer> integers = new ArrayList<>(set);
// 1, 2, 4, 3

删除

按照单逻辑进行删除

List<Integer> integers = new ArrayList<>(List.of(1, 2, 3, 5));
integers.removeIf(x -> x == 1);

按照多种匹配进行删除

List<Integer> integers = new ArrayList<>(List.of(1, 2, 3, 5));
integers.removeAll(List.of(1, 2));

替换

空指针转空列表

ans = null;
ans = Objects.requireNonNullElse(ans, new ArrayList<>());

替换整个列表里面的null值

List<Integer> integers = new ArrayList<>(List.of(1, 2, 3, 5));
integers.add(null);
integers.replaceAll(integer -> integer == null ? 0 : integer);
List<Integer> integers = new ArrayList<>(List.of(1, 2, 3, 5));
integers.add(null);
boolean b = Collections.replaceAll(integers, null, 0);

翻转

List<Integer> integers = new ArrayList<>(List.of(1, 2, 3, 5));
integers.add(null);
Collections.reverse(integers);

排序(空指针安全的排序)

integers.sort(Comparator.nullsFirst(Comparator.naturalOrder()));

二维数组

展平数组

List<List<Integer>> lists = new ArrayList<>();
lists.add(Collections.nCopies(12, 5));
lists.add(Collections.nCopies(12, 6));

List<Integer> ans = new ArrayList<>();
lists.forEach(ans::addAll);

行转列

public class ListUtils {
    public static List<List<String>>  rowNormaliser(List<List<String>> list) {
        TreeMap<Integer, List<String>> treeMap = new TreeMap<>();
        for (List<String> stringList : list) {
            for (int i = 0; i < stringList.size(); i++) {
                treeMap.computeIfAbsent(i, k -> new ArrayList<>()).add(stringList.get(i));
            }
        }
        return new ArrayList<>(treeMap.values());
    }
}

合并

ans = new ArrayList<>(List.of(1, 2, 3, 4));
StringJoiner stringJoiner = new StringJoiner(",", "[", "]");
ans.forEach(x -> stringJoiner.add(x.toString()));

其他

乱序洗牌(打乱顺序)

List<List<Integer>> lists = new ArrayList<>();
lists.add(Collections.nCopies(12, 5));
lists.add(Collections.nCopies(12, 6));
List<Integer> ans = new ArrayList<>();
for (List<Integer> list : lists) {
    ans.addAll(list);
}
Collections.shuffle(ans);

你可能感兴趣的:(java,windows,开发语言)