Rac*_*hel 2 java sorting collections list
如何根据元素值对列表进行排序?
在我的单元测试类,我收到名单是基于其元素的值的一个排序的形式,{sortOrder and it has value 1, 2 and 3}我现在比较returnedList有expectedList以确保这两个列表是相同的,在相同的顺序相同的元素.
我的退货和预期清单的示例:
expected List = [Code: ANALYST, SortOrder: 2, Code: STREET, SortOrder: 1]
和 returned List = [Code: STREET, SortOrder: 1, Code: ANALYST, SortOrder: 2]
那么我如何对SortOrder上的列表进行排序,以便我的预期列表变为:
expected List = [Code: STREET, SortOrder: 1, Code: ANALYST, SortOrder: 2]
我不能使用任何库,这个问题与Compare List Question有关,有什么建议吗?
用这个:
public static void sort(List list, Comparator c)
Run Code Online (Sandbox Code Playgroud)
所以做这样的事情:
Collections.sort(myList, myComparator)
Run Code Online (Sandbox Code Playgroud)
myComparator是一个接口,您只需要实现一个比较方法:
public int compare(Object o1, Object o2)
Run Code Online (Sandbox Code Playgroud)
所以你可以用一个匿名的内部类来做到这一点:
Collections.sort(myList, new Comparator<MyType>(){
public int compare(MyType o1, MyType o2) {
//My implementation
}
});
Run Code Online (Sandbox Code Playgroud)
有关如何实现比较方法的信息,请查看此处的文档: