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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 明天你好,微笑 中级黑马   /  2015-8-19 20:02  /  155 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

、TreeMap怎么实现唯一。

2 个回复

正序浏览
你可以自己定义比较器,或者复写自有的比较方法。
  1. /*
  2. 需求:对学生对象的年龄进行升序排序。

  3. 因为数据是以键值对形式存在的。
  4. 所以要使用可以排序的Map集合。TreeMap。
  5. */
  6. import java.util.*;

  7. class StuNameComparator implements Comparator<Student>
  8. {
  9.         public int compare(Student s1,Student s2)
  10.         {
  11.                 System.out.println("compare....."+s1.getName());
  12.                 int num = s1.getName().compareTo(s2.getName());
  13.                 if(num==0)
  14.                         return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
  15.                 return num;
  16.         }
  17. }

  18. class MapTest2
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.                 TreeMap<Student,String> tm = new TreeMap<Student,String>(new StuNameComparator());

  23.                 tm.put(new Student("lisi1",21),"beijing");
  24.                 tm.put(new Student("alisi2",22),"shanghai");
  25.                 tm.put(new Student("blisi3",23),"nanjing");
  26.                 //tm.put(new Student("lisi1",21),"tinjin");
  27.                 tm.put(new Student("lisi4",24),"wuhan");

  28.                 Set<Map.Entry<Student,String>> entrySet = tm.entrySet();
  29.                
  30.                 Iterator<Map.Entry<Student,String>> it = entrySet.iterator();
  31.                
  32.                 while(it.hasNext())
  33.                 {
  34.                         Map.Entry<Student,String> me = it.next();

  35.                         Student stu = me.getKey();
  36.                         String addr = me.getValue();
  37.                         System.out.println(stu+":::"+addr);
  38.                 }
  39.         }
  40. }
复制代码
回复 使用道具 举报
求解答,求大神支招
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马