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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王超 中级黑马   /  2012-6-14 15:52  /  1252 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王超 于 2012-6-14 16:02 编辑
  1. import java.util.*;
  2. class GenericDemo7
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 TreeSet<Student> ts = new TreeSet<Student>(new Comp());
  7.                 ts.add(new Student("ssss7"));
  8.                 ts.add(new Student("ssss4"));
  9.                 ts.add(new Student("ssss8"));
  10.                 ts.add(new Student("ssss1"));

  11.                 Iterator<Student> it = new ts.iterator();
  12.                 while(it.hasNext())
  13.                 {
  14.                         System.out.println(it.next().getName());
  15.                 }
  16.         }
  17. }

  18. class Comp implements Comparator<Person>
  19. {
  20.         public int compare(Person p1,Person p2)
  21.         {
  22.                 return p1.getName().compareTo(p2.getName());
  23.         }        
  24. }

  25. class Person
  26. {
  27.         private String name;
  28.         Person(String name)
  29.         {
  30.                 this.name = name;
  31.         }
  32.         public String getName()
  33.         {
  34.                 return name;
  35.         }
  36. }

  37. class Student extends Person
  38. {
  39.         Student(String name)
  40.         {
  41.                 super(name);
  42.         }
  43. }
复制代码
错误提示:GenericDemo7.java:12: 软件包 ts 不存在
                Iterator<Student> it = new ts.iterator();

2 个回复

倒序浏览
  1. import java.util.*;
  2. class GenericDemo7
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 TreeSet<Student> ts = new TreeSet<Student>(new Comp());
  7.                 ts.add(new Student("ssss7"));
  8.                 ts.add(new Student("ssss4"));
  9.                 ts.add(new Student("ssss8"));
  10.                 ts.add(new Student("ssss1"));

  11.                 Iterator<Student> it = ts.iterator(); //Iterator<Student> it = new ts.iterator();不用new

  12.                 while(it.hasNext())
  13.                 {
  14.                         System.out.println(it.next().getName());
  15.                 }
  16.         }
  17. }

  18. class Comp implements Comparator<Person>
  19. {
  20.         public int compare(Person p1,Person p2)
  21.         {
  22.                 return p1.getName().compareTo(p2.getName());
  23.         }        
  24. }

  25. class Person
  26. {
  27.         private String name;
  28.         Person(String name)
  29.         {
  30.                 this.name = name;
  31.         }
  32.         public String getName()
  33.         {
  34.                 return name;
  35.         }
  36. }

  37. class Student extends Person
  38. {
  39.         Student(String name)
  40.         {
  41.                 super(name);
  42.         }
  43. }
复制代码

点评

看视频长了,晕了 ! 找半天没找到 ,谢谢  发表于 2012-6-14 16:01
回复 使用道具 举报
获取比较器的时候,不需要new,直接获取即可。
第12行代码改为:Iterator<Student> it = ts.iterator();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马