У меня есть класс компаратора на Java для сравнения записей на карте:
public class ScoreComp implements Comparator<Object> {
public int compare(Object o1, Object o2) {
Entry<Integer, Double> m1 = null;
Entry<Integer, Double> m2 = null;
try {
m1 = (Map.Entry<Integer, Double>)o1;
m2 = (Map.Entry<Integer, Double>)o2;
} catch (ClassCastException ex){
ex.printStackTrace();
}
Double x = m1.getValue();
Double y = m2.getValue();
if (x < y)
return -1;
else if (x == y)
return 0;
else
return 1;
}
}
когда я компилирую эту программу, я получаю следующее:
warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.Map.Entry<java.lang.Integer,java.lang.Double>
m1 = (Map.Entry<Integer, Double>)o1;
Мне нужно отсортировать записи карты на основе двойных значений.
Если я создаю следующий компаратор, я получаю сообщение об ошибке при вызове функции сортировки массивов (я получаю набор записей с карты и затем использую набор в качестве массива).
public class ScoreComp implements Comparator<Map.Entry<Integer, Double>>
как реализовать этот сценарий.