private List<Object> applyLeastConstrainingValueHeuristic(Variable var,
CSP csp)
{
List<Pair<Object, int>> pairs = new List<Pair<Object, int>>();
foreach (Object value in csp.getDomain(var))
{
int num = countLostValues(var, value, csp);
pairs.Add(new Pair<Object, int>(value, num));
}
// TODO
//Collections.sort(pairs, new Comparator<Pair<Object, int>>() {
// public int compare(Pair<Object, int> o1,
// Pair<Object, int> o2) {
// return o1.getSecond() < o2.getSecond() ? -1
// : o1.getSecond() > o2.getSecond() ? 1 : 0;
// }
//});
List<Object> result = new List<Object>();
foreach (Pair<Object, int> pair in pairs)
result.Add(pair.getFirst());
return result;
}