1 package cz.cuni.amis.utils.astar; 2 3 import java.util.Comparator; 4 import java.util.Map; 5 6 /** 7 * This comparator is a tricky object - it serves for the {@link AStarHeap} to compare nodes inside the heap. 8 * <p><p> 9 * The trick is, that it is initialized {@link AStarHeapComparator#AStarHeapComparator(Map)} with a map 10 * that contains node's costs that are used during the comparation inside {@link AStarHeapComparator#compare(Object, Object)}. 11 * No magic yet, ha? Well, the magic is that this map is not cloned... simply a pointer to this very instance passed 12 * inside the constructor is saved to you may alter the cost as you wish to! Which is truly needed by the {@link AStar} class 13 * that is obtaining nodes' costs from the {@link AStarMap} implementor. 14 * 15 * @author Jimmy 16 * 17 * @param <NODE> 18 * 19 * <p><p> 20 * Use amis-path-finding library instead, see svn://artemis.ms.mff.cuni.cz/pogamut/trunk/project/Utils/AmisPathFinding 21 */ 22 @Deprecated 23 public class AStarHeapComparator<NODE> implements Comparator { 24 25 private Map<NODE, Integer> values; 26 27 public AStarHeapComparator(Map<NODE, Integer> estimatedCosts){ 28 values = estimatedCosts; 29 } 30 31 public int compare(Object arg0, Object arg1) { 32 return values.get(arg0).intValue() - values.get(arg1).intValue(); 33 } 34 35 }