排序对象列表

Fra*_*ser 0 java

我有一个对象列表:

List<WorkflowError> workflowErrors = new List<WorkflowError>();
Run Code Online (Sandbox Code Playgroud)

其中我想在字符串字段errorCode上按字母顺序排序.

我知道我必须使用

Collections.sort(list,comparator) 
Run Code Online (Sandbox Code Playgroud)

并编写自定义比较器:

public class SortByErrorComparator implements Comparator<WorkflowError>
{
    // Comparator logic    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我已经看到了如何为一维列表执行此操作的示例,但我无法确定如何开始查找对象列表.

任何帮助,将不胜感激.

ada*_*shr 9

您需要实现该compare方法.

public class SortByErrorComparator implements Comparator<WorkflowError> {
    public int compare(WorkflowError obj1, WorkflowError obj2) {
        return obj1.getErrorCode().compareTo(obj2.getErrorCode());
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,你可以简单地做:

Collections.sort(list, new SortByErrorComparator()) ;
Run Code Online (Sandbox Code Playgroud)

在Java世界中,通常我们使用匿名内部类来内联,如下所示:

Collections.sort(list, new Comparator<WorkflowError>() {
    public int compare(WorkflowError obj1, WorkflowError obj2) {
        return obj1.getErrorCode().compareTo(obj2.getErrorCode());
    }
});
Run Code Online (Sandbox Code Playgroud)