Skip to content

Collections

About 414 wordsAbout 1 min

2025-05-06

一、Collections方法源代码

public static <T extends Comparable<? super T>> void sort(List<T> list)

排序方法,底层使用的是列表的排序方法,可以传入一个Comparator的参数。

相同方法:

public static <T> void sort(List<T> list, Comparator<? super T> c)

public static <T extends Comparable<? super T>> void sort(List<T> list) {
    list.sort(null);
}

public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)

循环比较,也可以传入比较器

public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) {
    Iterator<? extends T> i = coll.iterator();
    T candidate = i.next();

    while (i.hasNext()) {
        T next = i.next();
        if (next.compareTo(candidate) > 0)
            candidate = next;
    }
    return candidate;
}

public static final <T> List<T> emptyList()

返回一个空的不可变的list,这个list是一个内部类的对象。

同理的还有emptyMap, emptySet

排序:

  • sort

查找:

  • binarySearch

最大值最小值

  • max
  • min

二、所遇问题

1、为什么Arrays.asList()提示我要用Collections.singletonList()替换?

通过Arrays.asList()源码我们可以看到,Arrays.asList()返回的是一个内部类的对象,其默认的存储长度是10,浪费 存储空间;singletonList的话,其参数只有一个元素,因此可以做到分配内存最小化。

Arrays.asList(o)返回对象只能调用set方法,不能调用add方法;Collections.singletonList(o)返回值即不能调用add方法,也不能调用set方法。

Changelog

7/19/25, 4:20 PM
View All Changelog
  • c089a-Merge branch 'dev1'on

求求了,快滚去学习!!!

求求了求求了,快去学习吧!

【题单】贪心算法

不知道方向的时候,可以多看看书,书会给你指明下一步该干什么,加油!