如何根据元素值对列表进行排序?
在我的单元测试类中,我收到的列表是基于其元素值之一排序的列表 {sortOrder 并且它的值为 1、2 和 3}
现在我正在比较 returnedList
和 expectedList
以确保两个列表相同并且具有相同顺序的相同元素。
我的返回和预期列表示例:
预期列表 = [代码: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
}
});
有关如何实现比较方法的信息,请查看此处的文档:
关于java - 根据元素的值对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853311/