黑马程序员技术交流社区

标题: [已解决]在学习泛型中出现的问题 [打印本页]

作者: 王超    时间: 2012-6-14 15:52
标题: [已解决]在学习泛型中出现的问题
本帖最后由 王超 于 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();
作者: 李月    时间: 2012-6-14 15:55
  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 15:59
获取比较器的时候,不需要new,直接获取即可。
第12行代码改为:Iterator<Student> it = ts.iterator();




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