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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙娜 中级黑马   /  2013-3-20 09:14  /  1842 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙娜 于 2013-3-20 12:30 编辑
  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. }
复制代码
关于类变量不是很理解,上面注释的依据代码,谁能详细讲解一下

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

14 个回复

倒序浏览

这个不是返回本集合对象的迭代器么,
集合调用继承与Collection接口的方法 取得本集合对象的的迭代器  然后通过迭代器取出集合中的元素
这个毕向东基础视频上有详细讲的, 楼主可以仔细再看看视频

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
Iterator it=ts.iterator();
解析上面这句代码,Iterator是一个接口,iterator是一个返回值为Iterator接口实例对象的方法,根据调用者的不同返回对应底层结构的实现实例,这个实例用接口接受,也可以说是面向接口编程。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
毕老师视频中叫它迭代器,是用来遍历集合的,
回复 使用道具 举报
Iterator为迭代器,这里主要是用来判断容器里是否还有元素(对象);因为再容器里,for或者while循环并不能很好的来
输出元素,但是Iterator提供的例如hasNext()【类似于在元素上有个指正,有,就返回true并且指针下移,没有就false】和next()【输出上个指针元素】方法能较好的替代循环,逐个遍历

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
刘凯 发表于 2013-3-20 09:25
这个不是返回本集合对象的迭代器么,
集合调用继承与Collection接口的方法 取得本集合对象的的迭代器  然 ...

我知道这是迭代器,能否从面向对象的方面解释一下这句代码
回复 使用道具 举报
刘凯 金牌黑马 2013-3-20 09:52:56
7#
孙娜 发表于 2013-3-20 09:44
我知道这是迭代器,能否从面向对象的方面解释一下这句代码

这个 ...
坐等大神赐教好了,,,  

说实话 一说 从面向对象的方面解释    我都不知道是怎么个解释 。。。
等大神  求真传
回复 使用道具 举报
孙娜 中级黑马 2013-3-20 09:56:51
8#
郝强勇 发表于 2013-3-20 09:28
Iterator it=ts.iterator();
解析上面这句代码,Iterator是一个接口,iterator是一个返回值为Iterator接口 ...

Iterator是一个接口,接口里面有三个方法hasNext()、next() 、remove()。Iterator it——定义一个接口类类型变量it, ts是一个集合,ts.iterator()——是啥意思啊
回复 使用道具 举报
孙娜 中级黑马 2013-3-20 09:59:33
9#
牛合超 发表于 2013-3-20 09:31
毕老师视频中叫它迭代器,是用来遍历集合的,

起的名字是迭代器,但其实还是一个类,不明白这个是用的面向对象里面的哪些知识
回复 使用道具 举报
姓名长度不符 发表于 2013-3-20 09:34
Iterator为迭代器,这里主要是用来判断容器里是否还有元素(对象);因为再容器里,for或者while循环并不能很 ...

起的名字是迭代器,但其实还是一个类,能否用面向对象的基础知识点来解释一下
回复 使用道具 举报
ts是一个集合,没错啊,集合TreeSet的实例对象引用ts可以调用自己的方法啊,iterator是TreeSet的方法啊,这个方法返回接口的实例对象啊。我解释的不清楚啊。
回复 使用道具 举报
郝强勇 发表于 2013-3-20 11:01
ts是一个集合,没错啊,集合TreeSet的实例对象引用ts可以调用自己的方法啊,iterator是TreeSet的方法啊,这 ...

啊,晕了, iterator()是TreeSet的方法。
回复 使用道具 举报
Iterator是一个迭代容器,用于存放数据,然后进行遍历数据,iterator()是TreeSet中的一个用于对TreeSet中元素进行遍历的一个方法,因为很多的集合类要用到这个方法,所以进行了单独的抽取定义成的了一个接口Iterator,让其它的集合类实现这个接口,因为不通的集合类的遍历操作的方法不一样,所以定义为接口,Iterator it 而这句话是说定义的这个类型的应用变量,ts.iterator();这句话是说对该集合类中的元素进行遍历,返回的类型是Iterator类型的,而it是来接收这个ts.iterator();对象,从而指向它,然后好进行打印输出。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
孙娜 发表于 2013-3-20 12:27
啊,晕了, iterator()是TreeSet的方法。

你看一下API文档,一目了然···
回复 使用道具 举报
天天写的代码猛然间 我也不不明白了 !!!
也知道这是面向接口编程
用一个类的方法返回另一个类的对象的实例 跟工厂模式有点像但是又不是。。。。
跟张老师讲的“两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子” 有点类似
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马