查看: 1151|回复: 5
打印 上一主题 下一主题

集合接口

[复制链接]

1026

主题

1

听众

6011

积分

高级设计师

Rank: 6Rank: 6

纳金币
5996
精华
1

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2011-7-26 22:54:32 |只看该作者 |倒序浏览
集合接口



  1.Collection 接口



  用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。







  (1) 单元素添加、删除操作:



   boolean add(Object o):将对象添加给集合



   boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o



  (2) 查询操作:



   int size() :返回当前集合中元素的数量



   boolean isEmpty() :判断集合中是否有任何元素



   boolean contains(Object o) :查找集合中是否含有对象o



   Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素



  (3) 组操作 :作用于元素组或整个集合



   boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素



   boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合



   void clear(): 删除集合中所有元素



   void removeAll(Collection c) : 从集合中删除集合c 中的所有元素



   void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素



  (4) Collection转换为Object数组 :



   Object[] toArray() :返回一个内含集合所有元素的array



   Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。



  此外,您还可以把集合转换成其它任何其它的对象数组。但是,您不能直接把集合转换成基本数据类型的数组,因为集合必须持有对象。



  “斜体接口方法是可选的。因为一个接口实现必须实现所有接口方法,调用程序就需要一种途径来知道一个可选的方法是不是不受支持。如果调用一种可选方法时,一个 UnsupportedOperationException 被抛出,则操作失败,因为方法不受支持。此异常类继承 RuntimeException 类,避免了将所有集合操作放入 try-catch 块。”



  Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。



  1.1.AbstractCollection 抽象类



  AbstractCollection 类提供具体“集合框架”类的基本功能。虽然您可以自行实现 Collection 接口的所有方法,但是,除了iterator()和size()方法在恰当的子类中实现以外,其它所有方法都由 AbstractCollection 类来提供实现。如果子类不覆盖某些方法,可选的如add()之类的方法将抛出异常。



  1.2.Iterator 接口



  Collection 接口的iterator()方法返回一个 Iterator。Iterator接口方法能以迭代方式逐个访问集合中各个元素,并安全的从Collection 中除去适当的元素。







  (1) boolean hasNext(): 判断是否存在另一个可访问的元素



    Object next(): 返回要访问的下一个元素。如果到达集合结尾,则抛出NoSuchElementException异常。



  (2) void remove(): 删除上次访问返回的对象。本方法必须紧跟在一个元素的访问后执行。如果上次访问后集合已被修改,方法将抛出IllegalStateException。



  “Iterator中删除操作对底层Collection也有影响。”



  迭代器是 故障快速修复(fail-fast)的。这意味着,当另一个线程修改底层集合的时候,如果您正在用 Iterator 遍历集合,那么,Iterator就会抛出 ConcurrentModificationException (另一种 RuntimeException异常)异常并立刻失败。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-1-24 23:18:33 |只看该作者
八方捷报,四海增辉。 一元复始,九州同庆; 八方和协,四季平安。 万里江山,增奇添彩; 四化图景,流翠飞红。
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-3-12 23:22:44 |只看该作者
百度的叫度娘,网易的叫易娘,新浪内部还在为是叫新娘还是浪娘而争论不休!……不管你们是企鹅的额娘,豆瓣的伴娘,还是华为的伪娘,都要记得,淘宝才是你们的亲娘啊!亲!!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-8-4 00:19:15 |只看该作者
很经典,很实用,学习了!
回复

使用道具 举报

   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

5#
发表于 2012-9-1 01:09:52 |只看该作者
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-9-3 01:03:16 |只看该作者
真不错,全存下来了.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-6-18 20:05 , Processed in 0.074973 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部