四时宝库

程序员的知识宝库

Java集合算法-列表排序(java集合根据字段排序)

列表排序

Collection类中的两个静态方法会对List进行排序。

  • sort(List list)按照由元素实现的Comparable接口定义的顺序对List中的元素进行排序。
  • sort(List list,Comparator c)使用传入的Comparator对象对元素进行排序。

我们还可以使用List接口中的sort(Comparator c)对List进行排序,而不使用Collections类。

以下代码演示了如何对 List 进行排序:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
 public static void main(String[] args) {
 List<String> list = new ArrayList<>();
 list.add("J");
 list.add("R");
 list.add("C");
 list.add("X");
 System.out.println("List: " + list);
 // Uses Comparable implementation in String class
 // to sort the list in natural order
 Collections.sort(list);
 System.out.println("Sorted List: " + list);
 }
}

上面的代码生成以下结果。

例子

以下代码使用List接口中的sort()方法按其元素长度的升序对列表进行排序:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Main {
 public static void main(String[] args) {
 List<String> list = new ArrayList<>();
 list.add("Java");
 list.add("R");
 list.add("CSS");
 list.add("XML");
 System.out.println("List: " + list);
 // Uses List.sort() method with a Comparator
 list.sort(Comparator.comparing(String::length));
 System.out.println("Sorted List: " + list);
 }
}

上面的代码生成以下结果。

sort()方法使用修改的mergeesort算法,这是一个稳定的排序。

在稳定的排序中,相等的元素将在排序操作之后保持在它们当前的位置。

排序提供了 n*log(n)性能,其中 n 是列表中元素的数量。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接