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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 天方地圆 中级黑马   /  2014-2-28 11:01  /  1099 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 天方地圆 于 2014-3-4 22:59 编辑
  1. class  TreeSetDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 TreeSet ts = new TreeSet();

  6.                 ts.add("cba");
  7.                 ts.add("abcd");
  8.                 ts.add("aaa");
  9.                 ts.add("bca");

  10.                 Iterator it = ts.iterator();

  11.                 while (it.hasNext())
  12.                 {
  13.                         System.out.println(it.next());
  14.                 }
  15.         }
  16. }
复制代码


Iterator it = ts.iterator();  这句话,是什么意思?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

6 个回复

正序浏览
Iterator it = ts.iterator();  这句话,是什么意思?
这个就是获取ts的迭代,用于遍历TreeSet元素
回复 使用道具 举报
TreeSet底层是二叉树数据结构, 元素要排序的。添加的元素必须拥有可比较性。就是元素必须实现Comparable接口。
在自定义对象类是。1 让类具有比较性,类实现Comparable接口并复写compareTo( )方法。
                           2 让TreeSet拥有比较器,就是定义比较器的子类实现Comparator接口并复写compare( )方法。并把类对象作为实际参数传给TreeSet构造函数。

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
Iterator it = ts.iterator(); 
1、左边声明一个接口类型的变量,该接口类型是Iterator。
2、右边是treeSet的对象ts调用iterator方法,该方法会返回一个Iterator接口类型的对象。暂时可以这样理解该方法通过获得迭代器,操纵迭代器可获取Collection中的元素。
3、把ts.iterator返回的对象的首地址值赋给变量it,即it指向了该对象,it就和该对象关联起来了。
集合框架那里有些地方还是比较难理解的,而且有较多内部类的设计,需要看懂源码才能掌握得较透彻,现在我们还看不懂那源码。所以建议楼主有些地方可以先缓一缓,先记住会用就好。加油!   

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
就是获取ts这个集合的迭代器,用来遍历集合中元素
回复 使用道具 举报
Iterator 是迭代器  可用它实现遍历集合(类似for循环)。Iterator是接口,不能直接new,获取他的对象只能是通过集合的 ts.iterator()方法获取实例。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
创建一个迭代器,TreeSet中的 iterator方法,返回在此 set 中的元素上按升序进行迭代的迭代器。为了后面进行遍历。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马