21 package org.matsim.core.router.priorityqueue;
23 import java.util.IdentityHashMap;
24 import java.util.Iterator;
38 private final Map<E, WrappedEntry>
map;
42 this.map =
new IdentityHashMap<>(maxSize);
47 this.map =
new IdentityHashMap<>(maxSize);
51 public boolean add(E value,
double priority) {
56 public boolean remove(E value) {
57 if (value == null)
return false;
64 if (entry != null)
return entry.
getValue();
80 this.delegate.
reset();
90 throw new NullPointerException(
"null values are not supported!");
91 }
else return this.map.get(value);
97 if (wrappedEntry == null) {
98 int index = map.size();
103 map.put(value, wrappedEntry);
111 if (entry != null)
return entry.
getValue();
117 return this.delegate.
size();
122 return this.delegate.
isEmpty();
135 return this.delegate.hasNext();
140 return this.delegate.next().getValue();
144 public void remove() {
145 this.delegate.remove();
boolean decreaseKey(E value, double priority)
boolean add(E value, double priority)
WrappedBinaryMinHeap(int maxSize, int fanout, boolean classicalRemove)
final BinaryMinHeap< WrappedEntry > delegate
boolean add(E value, double priority)
WrappedEntry getWrappedEntry(E value)
final Iterator< WrappedEntry > delegate
WrappedEntry getOrCreateWrappedEntry(E value)
boolean decreaseKey(E value, double cost)
ArrayIterator(Iterator< WrappedEntry > delegate)
WrappedBinaryMinHeap(int maxSize)
final Map< E, WrappedEntry > map
WrappedEntry(E value, int index)