花不败 发表于 2021-12-23 16:13:17

Java Collection源码分析

  1、Collection接口是集合继承关系中的根接口(rootinterface),有些集合允许重复元素,有些集合有序,JDK不提供本接口的实现,只提供子接口的实现(例如Set,List)

  2、所有实现Collection(或者其子接口)的类都必须包含两个构造函数:无参的构造函数,以及参数为Collection的拷贝构造函数

  JavaCollection源码如下:

  packagejava、util;

  10、publicinterfaceCollection<;E>;extendsIterable<;E>;{

  11、

  12、//返回集合中存在的元素。如果元素的数目超过Integer、MAX_VALUE,返回Integer、MAX_VALUE

  13、intsize();

  14、

  15、//当集合不包含任何元素时,返回true

  16、booleanisEmpty();

  17、

  18、//如果集合中包含至少一个指定对象,返回true

  19、booleancontains(Objecto);

  20、

  21、//返回可以遍历集合元素的迭代器

  22、Iterator<;E>;iterator();

  23、

  24、//返回集合中所有元素组成的数组,数组元素的返回顺序要和迭代器访问集合元素的返回顺序一样

  25、Object[]toArray();

  26、

  27、//返回包含此collection中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。

  28、<;T>;T[]toArray(T[]a);

  29、

  30、//如果集合不允许重复元素,且集合中已经含有该元素,返回false

  31、booleanadd(Ee);

  32、

  33、//从此collection中移除指定元素的单个实例,如果集合中存在指定元素返回true。

  34、booleanremove(Objecto);

  35、

  36、//如果此collection包含指定collection中的所有元素,则返回true。

  37、booleancontainsAll(Collection<;?>;c);

  38、

  39、//将指定collection中的所有元素都添加到此collection中

  40、booleanaddAll(Collection<;?extendsE>;c);

  41、

  42、//移除此collection中那些也包含在指定collection中的所有元素(可选操作)。

  43、booleanremoveAll(Collection<;?>;c);

  44、

  45、//仅保留此collection中那些也包含在指定collection的元素(可选操作)。

  46、booleanretainAll(Collection<;?>;c);

  47、

  48、//移除此collection中的所有元素(可选操作)。

  49、voidclear();

  50、

  51、//比较此collection与指定对象是否相等。通过覆盖,实现list与list相等,set与set相等

  52、booleanequals(Objecto);

  53、

  54、//返回此collection的哈希码值。

  55、inthashCode();

  56、}
页: [1]
查看完整版本: Java Collection源码分析