我有一个对象列表:

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());
    }
});

10-07 23:26