Строка data = (Entry<K,V>[]) new Object[size]
приводит к ошибке приведения типа, потому что массив Object
не может быть передан в массив Map.Entry
. В следующем коде используется пользовательский класс AHEntry
, который вы предоставили:
public class ArrayHeap<K,V> implements PriorityQueue<K,V> {
private Comparator<K> comp;
private Entry<K,V>[] data;
private int heapSize;
@SuppressWarnings({"unchecked"})
public ArrayHeap(int size, Comparator<K> c){
data = new (AHEntry<K, V>)new AHEntry<?, ?>[size];
heapSize = 0;
comp = c;
}
}