У меня есть список массива, который содержит следующее:метод Java CompareTo не работает, как ожидалось
{a2.name, a4.name, tr.prod_date, a3.name, a1.name, a5.name, a6.name, a7.name, a8.name, a9.name, a10.name}
В моем методе - Я пытаюсь сравнить поля и сортировать их, чтобы они вернутся в алфавитном порядке.
Collections.sort(dataJSON, new Comparator() {
public int compare(Object obj1, Object obj2) {
return ((ReportDetail) obj1).getReportColumn().compareTo(((ReportDetail) obj2).getReportColumn());
}
});
К сожалению, результаты, которые я вижу в том, что a10.name придет впереди a2.name - я-то отсутствует или есть другой подход, я должен принимать?
я получаю, что он не смотрит на a10 имеет единственное число, и это только берет первую цифру, но есть способ для сравнения полной строки. Я думаю, – Buccaneer
Его сортировка лексически. Вы можете реализовать 'compareTo', чтобы извлечь номер и отсортировать его, если остальная часть строки такая же. – Atri