我有一个对象列表:
List<WorkflowError> workflowErrors = new List<WorkflowError>();
我想在其中对字符串字段errorCode按字母顺序进行排序。
我知道我要用
Collections.sort(list,comparator)
并编写一个自定义比较器:
public class SortByErrorComparator implements Comparator<WorkflowError>
{
// Comparator logic
return 0;
}
我已经看到了如何针对一维列表执行此操作的示例,但是我无法弄清楚如何开始创建对象列表。
任何帮助,将不胜感激。
最佳答案
您需要实现compare
方法。
public class SortByErrorComparator implements Comparator<WorkflowError> {
public int compare(WorkflowError obj1, WorkflowError obj2) {
return obj1.getErrorCode().compareTo(obj2.getErrorCode());
}
}
然后,您可以简单地执行以下操作:
Collections.sort(list, new SortByErrorComparator()) ;
在Java世界中,通常我们使用匿名内部类按以下方式内联:
Collections.sort(list, new Comparator<WorkflowError>() {
public int compare(WorkflowError obj1, WorkflowError obj2) {
return obj1.getErrorCode().compareTo(obj2.getErrorCode());
}
});