小弟敲了下面的代码:
package generic_programming;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;public class MapTest
{
public static void main(String[] args)
{
                  Map< Integer,String  > map = new TreeMap<Integer ,String >(new MyComparator());
map.put(23,"John");
map.put(23,"Tom");
map.put(23,"Jack");

Set<Map.Entry<Integer,String>> set = map.entrySet();

for(Iterator<Map.Entry<Integer,String  >> iter = set.iterator(); iter.hasNext();)
{
Map.Entry<Integer,String > entry = iter.next();
Integer in = entry.getKey();
String value = entry.getValue();
System.out.println(value + ":" + in);
}

}
}
class MyComparator implements Comparator<Integer>
{
@Override
public int compare(Integer o1, Integer o2)
{
return o2 - o1;
}
}
为什么最后的返回结果只是Jack:23呢?求大神解释。