Java源码-Collection

结构

在这里插入图片描述

介绍

通过阅读API文档,整理如下几点要素:

  • 这个接口通常用于在需要最大通用性的地方传递集合并操作它们。包或多集(Bags or multisets)(无序的集合,可能包含重复的元素)应该直接实现这个接口。
  • 所有通用集合实现类(通常实现收集间接通过它的一个type)应**提供“标准”两个构造函数:**一个空构造函数(没有参数),它创建了一个空集合,和一个参数的构造函数类型集合,它创建一个新的集合相同的元素作为其参数。
  • 这个接口中包含的“破坏性”方法,即修改其操作所在集合的方法,被指定在该集合不支持该操作时抛出UnsupportedOperationException。例如,如果要添加的集合是空的,那么在不可修改的集合上调用addAll(Collection)方法可能会抛出异常,但不是必须这样做。
  • 试图添加不符合条件的元素会引发未检查异常,通常是NullPointerException或ClassCastException。
  • 试图查询不符合条件的元素的存在可能会引发异常,或者只返回false
  • 尝试对不符合条件的元素执行操作,而该元素的完成不会导致将不符合条件的元素插入到集合中,这可能会引发异常,也可能会成功,取决于实现的选择
  • 由每个集合决定自己的同步策略。
  • 一些执行集合递归遍历的集合操作可能会失败,但对于集合直接或间接包含自身的自引用实例例外。这包括clone()、equals()、hashCode()和toString()方法。

方法

add(E) boolean / addAll(Collection 《? extend E>)boolean

add(E) boolean 描述如下:

  • 集合在添加后发生改变(理解为插入成功),返回true,如果这个集合不允许重复(Set),并且已经包含指定的元素,则返回false。
  • 支持此操作的集合可能会限制向该集合添加哪些元素。(一些集合将拒绝添加空元素,而其他集合将对可能添加的元素类型施加限制)
  • 如果集合拒绝添加一个特定的元素,那么它必须抛出一个异常(而不是返回false)。

addAll(Collection 《? extend E>)boolean 描述如下

  • 将指定集合中的所有元素添加到此集合(可选操作)
  • 修改成功返回true

clear()void

删除所有元素

removeAll (Collection <? extend E>)boolean

删除指定集合中也包含的此集合的所有元素

remove(Object o)

如果指定元素存在((o == null ? e==null : o.equals(e))),则从该集合中移除该元素的单个实例

size

返回集合内元素的个数

boolean isEmpty()

判断是否为空

总结

这是第一次看有关源码的内容,对此进行简短的总结:

  • 没必要详细记录类或借口的方法以及特点,以后的内容对于方法仅用一个词进行作用概括,用法比较偏僻的将不记录,用到时再去查查API
  • 有关类的层次关系图还是有必要画画的
  • 着重点在于源码内对于具体细节的实现,考虑其中所涉及的设计模式、思想、原理等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值