Есть ли лучший способ написать этот компаратор? У меня есть эквивалент многомерного массива, где столбцы - Object
. Фактические объекты: String
и BigDecimal
99% времени. Я сортирую «строки» по заданному индексу столбца.Java-компаратор на многомерном массиве
Я хочу избежать экземпляра.
protected static class MyComparator implements Comparator<DataRow> {
private int idx;
public MyComparator(int idx) {
this.idx = idx;
}
@Override
public int compare(DataRow r1, DataRow r2) {
Object o1 = r1.getColumns()[idx];
Object o2 = r2.getColumns()[idx];
if (o1 instanceof String){
return ((String)o1).compareTo((String)o2);
}else if (o1 instanceof BigDecimal){
return ((BigDecimal)o1).compareTo((BigDecimal)o2);
}else{
throw new UnsupportedOperationException("comparison cannot be performed");
}
}
Мне нужно будет запустить приложение через множество тестов, чтобы проверить совместимость данных. Пока модульные тесты устойчивы, используя этот подход :)) Я бросил Integer, и это сработало. – Elijah