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?
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Ähnliche Java Themen

Neue Themen


Oben