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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋美成 中级黑马   /  2014-4-2 14:13  /  1904 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 宋美成 于 2014-4-2 17:15 编辑

我有个小问题,视频里说只有List集合具备迭代功能,但是为啥在后面的Set集合中也用了迭代器Iterator呢?这不是矛盾了吗

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

6 个回复

倒序浏览
它们都是collection接口的小弟,(已知子类接口)
回复 使用道具 举报
视频老师口误吧!!
我给你分析一下List集合和  Set集合的异同点吧!!
首先他们都是单列元素的集合,所以,他们有一个共同的父接口,叫Collection.
Set里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不仅仅是相同)的对象,
即假设Set 集合中有一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals
相等
则B对象存储不进去,所以,Set集合的add()方法有一个boolean的返回值,当集合中没有某个元素,
此时add方法可成功加入该元素时,则返回true,
Set取元素是,没法说取第几个,只能以Iterator 接口取得所有的元素,在逐一遍历各个元素;

List: 表示有先后顺序的集合,注意,不是那种按年龄,按大小,按价格之类的排序.当我们多次调用
add()方法时,每次加入的对象就像火车站买票有排队顺序一样,按先来后到的顺序排序.有时候,也可以
插队,即 调用 add(int index,Object obj) 方法,就可以指定当前对象在集合中的存放位置.有时候,
一个对象可以被反复存储进List中,每调用一次add方法,这个对象就被插入进集合中一次,其实,
并不是把这个对象本身存储进了集合中,而是在集合中用一个索引变量指向这个对象当这个对象
被add多次时,即相当于集合中有多个索引指向了这个对象,List 除了可以以Iterator  接口取
得所有的元素,再逐一遍历各个元素之外,还可以调用get(index i) 来明确说明取第几个.


评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

回复 使用道具 举报
正确的说法是只要是实现了迭代器接口Iterator或者ListIterator的类就可以被迭代;
视屏里难免会出现一些口误,但是你能听得很仔细并能产生怀疑这点就很不错,说明你已经具备了自学的一些特质
回复 使用道具 举报
一世英明 发表于 2014-4-2 14:44
视频老师口误吧!!
我给你分析一下List集合和  Set集合的异同点吧!!
首先他们都是单列元素的集合,所以,他们 ...

恩,明白了,谢谢
回复 使用道具 举报
1453149997 发表于 2014-4-2 16:56
正确的说法是只要是实现了迭代器接口Iterator或者ListIterator的类就可以被迭代;
视屏里难免会出现一些口 ...

明白了,谢谢
回复 使用道具 举报
素质 中级黑马 2014-4-23 02:48:40
7#
楼主看的是哪个视频?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马