黑马程序员技术交流社区

标题: 求解答 [打印本页]

作者: 明天你好,微笑    时间: 2015-8-19 20:02
标题: 求解答
、TreeMap怎么实现唯一。
作者: 明天你好,微笑    时间: 2015-8-19 20:03
求解答,求大神支招
作者: shdosh    时间: 2015-8-19 21:20
你可以自己定义比较器,或者复写自有的比较方法。
  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. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2