SortedMap mit ValueComparator

kirdie

Bekanntes Mitglied
Ich möchte eine SortedMap haben, die nach Values sortiert. Mein Ansatz:

Java:
public class ValueComparator<S,T extends Comparable<T>> implements Comparator<S>
{
	Map<S,T> map;
	public 			ValueComparator(Map<S, T> map)	{setMap(map);}
	public void	setMap(Map<S, T> map)			{this.map = map;}
	
	@Override
	public int compare(S s, S t) {return map.get(s). compareTo(map.get(t));}
}

public void testIt()
{
 final ValueComparator<String,Integer> valueComparator = new ValueComparator<String,Integer>(null);
 final SortedMap<String,Integer> personToAge = new TreeMap<String,Integer>(valueComparator);
 valueComparator.setMap(personToAge);

 personToAge.put("Anton",50);
 personToAge.put("Peter",15);
}

Blöderweise bekomme ich jetzt einen StackOverflowError, da TreeMap.get anscheinend den Komparator aufruft und so eine Endlosschleife auftritt.

Wie kann ich das Problem am elegantesten Lösen?
 

Ähnliche Java Themen


Oben