A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雀巢咖啡 中级黑马   /  2014-5-26 15:02  /  1198 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
  1. package Map1;
  2. import java.util.*;
  3. class Student_1 implements Comparable<Student_1>
  4. {
  5.         private String name;
  6.         private int age;
  7.         Student_1(String name,int age)
  8.         {
  9.                 this.name=name;
  10.                 this.age=age;
  11.         }
  12.        
  13.         public int compareTo(Student_1 stu)
  14.         {
  15.                 if(!(stu instanceof Student_1))
  16.                         throw new ClassCastException("error!");
  17.                 System.out.println("!!!!");
  18.         int num=new Integer(this.age).compareTo(new Integer(stu.age));
  19.                
  20.                 if(num==0)
  21.                         return this.name.compareTo(stu.name);
  22.                 return num;
  23.         }
  24.         public String getName()
  25.         {
  26.                 return name;
  27.         }
  28.         public int getAge()
  29.         {
  30.                 return age;
  31.         }
  32.        
  33.         public String toString()
  34.         {
  35.                 return name+":"+age;
  36.         }
  37. }
  38. public class TreeMapTest_2 {
  39.         public static void main(String[] args)
  40.         {
  41.                 TreeMap<Student_1,String> ts=new TreeMap<Student_1,String>();
  42.                
  43.                 ts.put(new Student_1("sunyan3",3),"wuhan");
  44.                 ts.put(new Student_1("sunyan2",4),"hunan");
  45.                 ts.put(new Student_1("sunyan3",1),"wuhan");
  46.                
  47.                 //第一种取出方式:keySet
  48.                 /*Set<Student_1> s=ts.keySet();
  49.                 Iterator<Student_1> it=s.iterator();
  50.                 while(it.hasNext())
  51.                 {
  52.                         Student_1 s1=it.next();
  53.                         String addr=ts.get(s1);
  54.                         System.out.println(s1+":"+addr);
  55.                 }*/
  56.                
  57.                 //第二种取出方式:entrySet
  58.                 Set<Map.Entry<Student_1,String>> entry=ts.entrySet();
  59.                 Iterator<Map.Entry<Student_1,String>> it=entry.iterator();
  60.                
  61.                 while(it.hasNext())
  62.                 {
  63.                         Map.Entry<Student_1,String> s=it.next();
  64.                         Student_1 key=s.getKey();
  65.                         String Value=s.getValue();
  66.                         System.out.println(key+":"+Value);
  67.                 }
  68.         }
  69.        
  70. }
复制代码

问题:将TreeMap<Student_1,String>改为TreeMap<String,Student_1>后,在往其中存入:
      ts.put("wuhan",new Student_1("sunyan3",3));
      ts.put("hunan",new Student_1("sunyan2",4));
      ts.put("wuhan",new Student_1("sunyan3",1));
结果显示的是:wuhan:sunyan3,1  hunan:sunyan2,4;
为什么显示的不是:wuhan:sunyan3:1  suhan:sunyan3:3 hunan:sunyan2:4

点评

这个栗子的结果就是你所说的 wuhan:sunyan3:1 suhan:sunyan3:3 hunan:sunyan2:4  发表于 2014-5-26 15:38

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

2 个回复

倒序浏览
你的意思是键和值换下的意思?   wuhua重复了,不能存重复元素,TreeMap看键
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马