I used priorityQueue as a max-heap implementation in my java program. Right now I need to heapify the created heap for calculating the maximum value. It seems that priorityQueue does not implement heapify method. So my question would be is there anyway for handling this problem using priorityQueue? If no, is there any reliable implementation for Max-heap in java that has heapify method? Note that my program use its own comparator. So this implementation should support that.
Some more explanation:
PriorityQueue<Customer> marginalGainHeap = new PriorityQueue<Customer>(
1, new Comparator<Customer>() {
public int compare(Customer c1, Customer c2) {
return Double.compare(c1.getMarginalGain(),
c2.getMarginalGain());
}
});
Suppose a marginalGain value changed for "node" object which is a type of "Customer". one solution would be
marginalGainHeap.remove(node)
marginalGainHeap.add(node)
but there is a problem:
- It adds some extra latency to my program. I want to be as efficient as possible.