黑马程序员技术交流社区

标题: TreeSet中存入数据的问题 [打印本页]

作者: 闪亮未来    时间: 2015-4-20 22:22
标题: TreeSet中存入数据的问题
  1. import java.util.*;

  2. class Student
  3. {
  4.         private String name;
  5.         private int age;
  6.         Student(String name,int age)
  7.         {
  8.                 this.name=name;
  9.                 this.age=age;
  10.         }
  11.         public String getName()
  12.         {
  13.                 return name;
  14.         }
  15.         public int getAge()
  16.         {
  17.                 return age;
  18.         }

  19. }

  20. class test
  21. {
  22.         public static void main(String[] args)
  23.         {
  24.                 TreeSet ts=new TreeSet();
  25.                 ts.add(new Student("lisi06",23));
  26.                
  27.                 Iterator it=ts.iterator();
  28.                 while (it.hasNext())
  29.                 {
  30.                         Student stu=(Student)it.next();
  31.                         System.out.println(stu.getName()+"........"+stu.getAge());
  32.                 }
  33.         }
  34. }
复制代码

不是说TreeSet存入一个学生类的话就不需要比较,运行就不会报错吗,我跟老师一样的代码,为什么老师的能运行,我存一个学生类还是会报Student cannot be cast to java.lang.Comparable
作者: itheima_llt    时间: 2015-4-20 22:43
谢谢楼主,真是太好了
作者: 闪亮未来    时间: 2015-4-20 23:08
itheima_llt 发表于 2015-4-20 22:43
谢谢楼主,真是太好了

谢我干嘛,我只是来提问题的
作者: 邓士林    时间: 2015-4-20 23:10
调试下,看看
作者: itheima_llt    时间: 2015-4-20 23:44
因为TreeSet
        at java.util.TreeMap.compare(TreeMap.java:1188)
你注意看一下,我们的JVM报错比毕老师的多了一行
作者: 海带    时间: 2015-4-20 23:51
提的好,我也遇到了。求解
作者: 闪亮未来    时间: 2015-4-20 23:52
itheima_llt 发表于 2015-4-20 23:44
因为TreeSet
        at java.util.TreeMap.compare(TreeMap.java:1188)
你注意看一下,我们的JVM报错比毕 ...

还是不懂,毕老师的没报错,能运行,为什么我们的报错
作者: itheima_llt    时间: 2015-4-21 00:00
闪亮未来 发表于 2015-4-20 23:52
还是不懂,毕老师的没报错,能运行,为什么我们的报错

我仔细对比过了,是一模一样的代码,但是当Student不具备比较性的时候,毕老师的JVM报错内容比我们的JVM少了一条。。。
这让我怀疑是不是JVM的问题。。。。。




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