При сортировке списка существует ли разница в производительности между использованием Java-компаратора в строке (с анонимным внутренним классом) и внедрением отдельного пользовательского класса Comparator?Встроенный компаратор в сравнении с обычным компаратором в Java
1.
public class SortByErrorComparator implements Comparator<WorkflowError> {
public int compare(WorkflowError obj1, WorkflowError obj2) {
return obj1.getErrorCode().compareTo(obj2.getErrorCode());
}
}
Collections.sort(list, new SortByErrorComparator()) ;
2.
Collections.sort(list, new Comparator<WorkflowError>() {
public int compare(WorkflowError obj1, WorkflowError obj2) {
return obj1.getErrorCode().compareTo(obj2.getErrorCode());
}
});
Кроме того, когда будет метод compare()
быть вызван?
Возможно, вы захотите проверить этот ответ: http://stackoverflow.com/a/5468644/423991 –
Поскольку работа выполняется по тому же методу: почему должна быть разница? И вызов зависит от алгоритма сортировки - всякий раз, когда нужно сравнивать два элемента в коллекции. И, в некоторой степени, от первоначального упорядочения данных. – laune
«когда этот метод будет вызываться» - вы можете прочитать о [сортировке сортировки] (https://en.wikipedia.org/wiki/Comparison_sort). –