黑马程序员技术交流社区

标题: 这段代码很不理解到底错在哪里 [打印本页]

作者: Anyway    时间: 2014-8-10 15:25
标题: 这段代码很不理解到底错在哪里
本帖最后由 Anyway 于 2014-8-11 09:46 编辑
  1. import java.util.*;
  2. public class TreeSet
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 TreeSet ts=new TreeSet();
  7.                 ts.add("shjks");
  8.                 ts.add("bcjka");
  9.                 ts.add("jsijk");
  10.         
  11.         Iterator it=ts.iterator();
  12.         while(ts.hasNext())
  13.         {
  14.                 System.out.println(it.next());
  15.         }
  16.     }        
  17. }
复制代码

作者: 闪电博尔特    时间: 2014-8-10 15:29
好像没看到什么错误,但是你的类名为何用TreeSet,不知道你报什么错误但是有可能是跟类名冲突了
作者: 执笔梦    时间: 2014-8-10 16:34
  while(ts.hasNext())变量写错了
作者: 地狱天堂    时间: 2014-8-10 16:40
二处错误:
1,类名错误TreeSet改成其它,不然导入不了TreeSet
2, while(ts.hasNext())改成while(it.hasNext())
作者: zhxu188    时间: 2014-8-10 16:51
TreeSet类名错了,不能用,还有就是while循环里的错了
作者: java—family    时间: 2014-8-10 16:53
哥们这集合不是这么用的。1,不能用java关键字定义类名,2.判断是否有迭代元素是跌代器的方法。

treeset用于对Set集合进行元素的指定顺序排序,排序需要依据元素自身具备的比较性。
如果元素不具备比较性,在运行时会发生ClassCastException异常。
1:让元素自身具备比较性,需要元素对象实现Comparable接口,覆盖compareTo方法。
2:让集合自身具备比较性,需要定义一个实现了Comparator接口的比较器,并覆盖compare方法,并将该类对象作为实际参数传递给TreeSet集合的构造函数。


作者: huanglyhf    时间: 2014-8-10 17:34
while循环的条件错了!是it.hasNext()
作者: hzl_0911    时间: 2014-8-10 17:53
while循环里是 it
作者: huoshao008    时间: 2014-8-10 20:32
类名错误,这样写会建立一个你这个类的一个对象,而不是一个TreeSet集合.
作者: Anyway    时间: 2014-8-10 20:40
问题解决,谢谢大家:)




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