java - 根据元素的值对列表进行排序

标签 java list sorting collections

如何根据元素值对列表进行排序?

在我的单元测试类中,我收到的列表是基于其元素值之一排序的列表 {sortOrder 并且它的值为 1、2 和 3} 现在我正在比较 returnedListexpectedList 以确保两个列表相同并且具有相同顺序的相同元素。

我的返回和预期列表示例:

预期列表 = [代码:ANALYST,SortOrder:2,代码:STREET,SortOrder:1]

返回的List = [Code: STREET, SortOrder: 1, Code: ANALYST, SortOrder: 2]

那么我如何在 SortOrder 上对列表进行排序,以便我的预期列表变为:

预期列表 = [代码:STREET,SortOrder:1,代码:ANALYST,SortOrder:2]

我不能使用任何库,这个问题与 Compare List Question 有关, 有什么建议么?

最佳答案

使用这个:

 public static void sort(List list, Comparator c)

所以做这样的事情:

Collections.sort(myList, myComparator)

myComparator 是一个接口(interface),您只需为其实现一个比较方法:

public int compare(Object o1, Object o2)

所以你可以用匿名内部类来做到这一点:

Collections.sort(myList, new Comparator<MyType>(){ 
    public int compare(MyType o1, MyType o2) { 
        //My implementation
    }
 });

有关如何实现比较方法的信息,请查看此处的文档:

Comparator

关于java - 根据元素的值对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853311/

相关文章:

javascript - 对数组中的json进行排序

java - Unicode 代码点和 java 字符

java - 如何从 onActivityResult(int requestCode, int resultCode, Intent data) 获取结果?

java - 将项目插入列表,对其进行排序并在插入后检索项目的索引

list - 首先: contract violation error in racket/scheme for printing out a combination of list procedures

python - 如何使用自定义顺序按两列对 DataFrame 进行排序?

java - Mockito spy 失败,因为无法初始化类成员

java - Android JSON 解析器

list - Robotframework 列表变量来自变量文件

java - 从头开始对列表进行排序