当前位置: 代码迷 >> J2SE >> TreeMap的一个小疑点
  详细解决方案

TreeMap的一个小疑点

热度:40   发布时间:2016-04-23 20:07:33.0
TreeMap的一个小问题
我自己心里有点想法,但是不知道是不是对的;所以前来请教大家。
这个"1" , "11"的问题?求讲解下。
结果是
5
{1=76.8, 哈哈=72.1, 额额额=76.8, 啊啊啊啊=78.5, 啊啊啊啊啊=72.1}

TreeMap<String , Double> score = new TreeMap<String , Double>(new Comparator<String>()
{
@Override
public int compare(String o1, String o2)
{
return o1.length() > o2.length() ? 1 : o1.length() < o2.length() ? -1 : 0;
}
});
score.put("哈哈", 78.15);
score.put("啊啊啊啊", 78.5);
score.put("啊啊啊啊啊", 72.1);
score.put("额额额", 76.8);
score.put("1", 76.8); 
score.put("11", 72.1);  

System.out.println(score.size());
System.out.println(score);

------解决思路----------------------
return o1.length() > o2.length() ? 1 : o1.length() < o2.length() ? -1 : 0;
这个比较规则有问题,长度一样的key只能有一个。所以put了6个不一样的key,但是输出时只有5个,因为"11"和"哈哈"认为是相等的,所以在map里他们只有先put进去的存在。
  相关解决方案