欢迎访问宙启技术站
智能推送

Java集合框架中常用的排序函数实现和用法

发布时间:2023-06-23 13:50:39

Java集合框架中的排序函数主要是指在List集合中对元素进行排序。常用的排序函数包括:Collections.sort()、Arrays.sort()和List.sort()。

Collections.sort()是对List类型的集合进行排序,它接受一个List类型的集合和一个Comparator类型的比较器,比较器是可选的。如果没有指定比较器,那么按照元素的自然顺序(实现Comparable接口)进行排序。

示例代码:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");
 
// 排序前
System.out.println(list);
 
// 使用自然排序进行排序
Collections.sort(list);
 
// 排序后
System.out.println(list);

输出结果:

[apple, banana, orange]
[apple, banana, orange]

从输出结果可以看出,元素已经按照自然排序进行了排序。

如果想按照指定的比较器进行排序,例如按照字符串长度进行排序:

Comparator<String> lengthComparator = new Comparator<String>() {
    @Override
    public int compare(String str1, String str2) {
        return str1.length() - str2.length();
    }
};
Collections.sort(list, lengthComparator);

Arrays.sort()是对数组类型进行排序,它接受一个数组和一个Comparator类型的比较器。如果没有指定比较器,那么按照元素的自然顺序进行排序。

示例代码:

int[] numbers = {5, 3, 4, 1, 2};
// 排序前
System.out.println(Arrays.toString(numbers));
// 使用自然排序进行排序
Arrays.sort(numbers);
// 排序后
System.out.println(Arrays.toString(numbers));

输出结果:

[5, 3, 4, 1, 2]
[1, 2, 3, 4, 5]

List.sort()是从Java 8开始新增的排序函数,它是对List类型的集合进行排序,使用起来比Collections.sort()更加方便,无需使用辅助函数。

示例代码:

List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("orange");

// 排序前
System.out.println(list);

// 使用自然排序进行排序
list.sort(null);

// 排序后
System.out.println(list);

输出结果同上。

如果想按照指定的比较器进行排序,例如按照字符串长度进行排序:

Comparator<String> lengthComparator = new Comparator<String>() {
    @Override
    public int compare(String str1, String str2) {
        return str1.length() - str2.length();
    }
};
list.sort(lengthComparator);

Java集合框架中提供的排序函数可以方便地对集合元素进行排序,通过比较器可以实现更多灵活的排序方式。在实际开发中,我们常常需要对集合进行排序,掌握这些排序函数的使用方法是非常重要的。