分享
 
 
 

AbstractCollection

王朝百科·作者佚名  2010-01-10
窄屏简体版  字體: |||超大  

java.util

类 AbstractCollection<E>

java.lang.Object

java.util.AbstractCollection<E>

所有已实现的接口:

Iterable<E>, Collection<E>

直接已知子类:

AbstractList, AbstractQueue, AbstractSet

--------------------------------------------------------------------------------

public abstract class AbstractCollection<E>extends Objectimplements Collection<E>此类提供了 Collection 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。

要实现一个不可修改的 collection,程序员只需扩展此类,并提供 iterator 和 size 方法的实现。(iterator 方法返回的迭代器必须实现 hasNext 和 next。)

要实现可修改的 collection,程序员还必须另外重写此类的 add 方法(否则,会抛出 UnsupportedOperationException),并且 iterator 方法返回的迭代器必须另外实现其 remove 方法。

按照 Collection 接口规范中的推荐,程序员通常应该提供一个 void (无参数)和 Collection 构造方法。

此类中每个非抽象方法的文档详细描述了其实现。如果要实现的 collection 允许更有效的实现,则可以重写这些方法中的每个方法。

此类是 Java Collections Framework 的成员。

构造方法摘要

protected AbstractCollection()

单独的构造方法。

方法摘要

boolean add(E o)

确保此 collection 包含指定的元素(可选操作)。

boolean addAll(Collection<? extends E> c)

将指定 collection 中的所有元素添加到此 collection 中(可选操作)。

void clear()

从此 collection 中移除所有元素(可选操作)。

boolean contains(Object o)

如果此 collection 包含指定的元素,则返回 true。

boolean containsAll(Collection<?> c)

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

boolean isEmpty()

如果此 collection 不包含元素,则返回 true。

abstract Iterator<E> iterator()

返回在此 collection 中的元素上进行迭代的迭代器。

boolean remove(Object o)

从此 collection 中移除指定元素的单个实例(如果存在)(可选操作)。

boolean removeAll(Collection<?> c)

从此 collection 中移除包含在指定 collection 中的所有元素(可选操作)。

boolean retainAll(Collection<?> c)

仅在此 collection 中保留指定 collection 中所包含的元素(可选操作)。

abstract int size()

返回此 collection 中的元素数。

Object[] toArray()

返回包含此 collection 中所有元素的数组。

<T> T[]

toArray(T[] a)

返回包含此 collection 中所有元素的数组;返回数组的运行时类型是指定数组的类型。

String toString()

返回此 collection 的字符串表示形式。

从类 java.lang.Object 继承的方法

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

从接口 java.util.Collection 继承的方法

equals, hashCode

构造方法详细信息

AbstractCollection

protected AbstractCollection()单独的构造方法。(由子类构造方法调用,通常是隐式的。)

方法详细信息

iterator

public abstract Iterator<E> iterator()返回在此 collection 中的元素上进行迭代的迭代器。

指定者:

接口 Iterable<E> 中的 iterator

指定者:

接口 Collection<E> 中的 iterator

返回:

在此 collection 中的元素上进行迭代的迭代器。

--------------------------------------------------------------------------------

size

public abstract int size()返回此 collection 中的元素数。如果该 collection 包含多于 Integer.MAX_VALUE 的元素,则返回 Integer.MAX_VALUE。

指定者:

接口 Collection<E> 中的 size

返回:

此 collection 中的元素数。

--------------------------------------------------------------------------------

isEmpty

public boolean isEmpty()如果此 collection 不包含元素,则返回 true。

此实现返回 size() == 0。

指定者:

接口 Collection<E> 中的 isEmpty

返回:

如果此 collection 不包含元素,则返回 true。

--------------------------------------------------------------------------------

contains

public boolean contains(Object o)如果此 collection 包含指定的元素,则返回 true。更正式地说,当且仅当此 collection 至少包含一个满足以下条件的元素 e 时才返回 true:(o==null ? e==null : o.equals(e))。

此实现迭代该 collection 中的元素,并依次检查每个元素以确定其是否与指定的元素相等。

指定者:

接口 Collection<E> 中的 contains

参数:

o - 要检查的对象,以确定其是否包含在此 collection 中。

返回:

如果此 collection 包含指定的元素,则返回 true。

--------------------------------------------------------------------------------

toArray

public Object[] toArray()返回包含此 collection 中所有元素的数组。如果此 collection 保证其迭代器按顺序返回其元素,那么此方法也必须按相同的顺序返回这些元素。返回的数组将是“安全的”,因为此 collection 并不维护对返回数组的任何引用。(换句话说,即使 collection 受到数组的支持,此方法也必须分配一个新的数组)。因此,调用方可以随意修改返回的数组。

此实现会分配返回的数组,并迭代 collection 中的元素,将每个对象引用存储在数组的下一个连续元素中,并从元素 0 开始。

指定者:

接口 Collection<E> 中的 toArray

返回:

包含此 collection 中所有元素的数组。

--------------------------------------------------------------------------------

toArray

public <T> T[] toArray(T[] a)返回包含此 collection 中所有元素的数组;返回数组的运行时类型是指定数组的类型。如果指定的数组能容纳该 collection,则在此数组中返回 collection 的元素。否则,将根据指定数组的运行时类型和此 collection 的大小分配一个新数组。

如果指定的数组能容纳 collection,并且有剩余的空间(即数组的元素比 collection 多),那么会将紧挨着 collection 尾部的元素设置为 null(这对确定 collection 的长度很有用,但只有 在调用方知道 collection 不包含任何 null 元素时才可行)。

如果此 collection 保证其迭代器按顺序返回其元素,那么此方法也必须按相同的顺序返回这些元素。

此实现会检查该数组是否足够大,以包含该 collection 中的元素;如果不能包含,则将分配一个具有适当大小和类型的新数组(使用反射)。然后,在该 collection 上进行迭代,将每个对象引用存储在数组的下一个连续元素中,并从元素 0 开始。如果该数组比该 collection 大,则在该 collection 尾部后面的第一个位置存储 null。

指定者:

接口 Collection<E> 中的 toArray

参数:

a - 存储此 collection 的元素的数组(如果其足够大);否则,将为此分配一个具有相同运行时类型的新数组。

返回:

包含此 collection 的元素的数组。

抛出:

NullPointerException - 如果指定的数组为 null。

ArrayStoreException - 如果指定数组的运行时类型不是此 collection 中每个元素的运行时类型的超类型。

--------------------------------------------------------------------------------

add

public boolean add(E o)确保此 collection 包含指定的元素(可选操作)。如果此 collection 由于此方法的调用而发生改变,则返回 true。(如果此 collection 不允许有重复元素,并且已经包含了指定的元素,则返回 false。)支持此操作的 collection 可能限制哪些元素能添加到此 collection 中来。需要特别指出的是,某些 collection 拒绝添加 null 元素,其他一些 collection 则对可以添加的元素类型强加限制。Collection 类应该在其文档中清楚地指定添加元素方面的所有限制。

此实现始终抛出 UnsupportedOperationException。

指定者:

接口 Collection<E> 中的 add

参数:

o - 确保存在于此 collection 中的元素。

返回:

如果此 collection 由于此方法的调用而发生改变,则返回 true。

抛出:

UnsupportedOperationException - 如果此 collection 不支持 add 方法。

NullPointerException - 如果此 collection 不允许 null 元素,并且指定的元素为 null。

ClassCastException - 如果指定元素的类不允许该元素添加到此 collection 中。

IllegalArgumentException - 如果此元素的某方面不允许它添加到此 collection 中。

--------------------------------------------------------------------------------

remove

public boolean remove(Object o)从此 collection 中移除指定元素的单个实例(如果存在)(可选操作)。更正式地说,如果该 collection 包含一个或多个满足 (o==null ? e==null : o.equals(e)) 的元素 e,则移除 e。如果该 collection 包含指定的元素(或等价元素,如果该 collection 由于此方法的调用发生变化),则返回 true。

此实现在该 collection 上进行迭代,查找指定的元素。如果找到该元素,那么它会使用迭代器的 remove 方法从该 collection 中移除该元素。

注意,如果此 collection 的 iterator 方法所返回的迭代器无法实现 remove 方法,并且此 collection 包含指定的对象,那么此实现会抛出 UnsupportedOperationException。

指定者:

接口 Collection<E> 中的 remove

参数:

o - 要从此 collection 中移除的元素(如果存在)。

返回:

如果该 collection 包含指定的元素,则返回 true。

抛出:

UnsupportedOperationException - 如果此 collection 不支持 remove 方法。

--------------------------------------------------------------------------------

containsAll

public boolean containsAll(Collection<?> c)如果此 collection 包含指定 collection 中的所有元素,则返回 true。

此实现在指定的 collection 上进行迭代,依次检查该迭代器返回的每个元素,查看其是否包含在此 collection 中。如果包含所有元素,则返回 true;否则将返回 false。

指定者:

接口 Collection<E> 中的 containsAll

参数:

c - 将检查其是否包含在此 collection 中的 collection。

返回:

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

抛出:

NullPointerException - 如果指定的 collection 为 null。

另请参见:

contains(Object)

--------------------------------------------------------------------------------

addAll

public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 collection 中(可选操作)。如果在该操作进行过程中修改了指定的 collection,那么此操作的行为是不明确的。(这意味着,如果指定的 collection 是此 collection,并且此 collection 非空,则此调用的行为是不明确的。)

此实现在指定的 collection 上进行迭代,并依次将迭代器返回的每个对象添加到此 collection 中。

注意,除非重写 add,否则此实现将抛出 UnsupportedOperationException(假定指定的 collection 非空)。

指定者:

接口 Collection<E> 中的 addAll

参数:

c - 将其元素添加到此 collection 的 collection。

返回:

如果此 collection 由于此方法的调用而发生改变,则返回 true。

抛出:

UnsupportedOperationException - 如果此 collection 不支持 addAll 方法。

NullPointerException - 如果指定的 collection 为 null。

另请参见:

add(Object)

--------------------------------------------------------------------------------

removeAll

public boolean removeAll(Collection<?> c)从此 collection 中移除包含在指定 collection 中的所有元素(可选操作)。

此实现在此 collection 上进行迭代,依次检查该迭代器返回的每个元素,以查看其是否包含在指定的 collection 中。如果是,则使用迭代器的 remove 方法将其从此 collection 中移除。

注意,如果 iterator 方法返回的迭代器无法实现 remove 方法,并且此 collection 包含一个或多个与指定 collection 共有的元素,那么此实现将抛出 UnsupportedOperationException。

指定者:

接口 Collection<E> 中的 removeAll

参数:

c - 要从此 collection 移除的元素。

返回:

如果此 collection 由于此方法的调用而发生改变,则返回 true。

抛出:

UnsupportedOperationException - 如果此 collection 不支持 removeAll 方法。

NullPointerException - 如果指定的 collection 为 null。

另请参见:

remove(Object), contains(Object)

--------------------------------------------------------------------------------

retainAll

public boolean retainAll(Collection<?> c)仅在此 collection 中保留指定 collection 中所包含的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。

此实现在此 collection 上进行迭代,依次检查该迭代器返回的每个元素,以查看其是否包含在指定的 collection 中。如果不是,则使用迭代器的 remove 方法将其从此 collection 中移除。

注意,如果 iterator 方法返回的迭代器无法实现 remove 方法,并且此 collection 包含一个或多个在指定 collection 中不存在的元素,那么此实现将抛出 UnsupportedOperationException。

指定者:

接口 Collection<E> 中的 retainAll

参数:

c - 将保留在此 collection 的元素。

返回:

如果此 collection 由于此方法的调用而发生改变,则返回 true。

抛出:

UnsupportedOperationException - 如果此 collection 不支持 retainAll 方法。

NullPointerException - 如果指定的 collection 为 null。

另请参见:

remove(Object), contains(Object)

--------------------------------------------------------------------------------

clear

public void clear()从此 collection 中移除所有元素(可选操作)。此调用返回后,该 collection 将为空(除非它抛出异常)。

此实现在此 collection 上进行迭代,并使用 Iterator.remove 操作移除每个元素。为了提高效率,多数实现可能会选择重写此方法。

注意,如果此 collection 的 iterator 方法所返回的迭代器无法实现 remove 方法,并且此 collection 非空,那么此实现将抛出 UnsupportedOperationException。

指定者:

接口 Collection<E> 中的 clear

抛出:

UnsupportedOperationException - 如果此 collection 不支持 clear 方法。

--------------------------------------------------------------------------------

toString

public String toString()返回此 collection 的字符串表示形式。该字符串表示形式由 collection 元素的列表组成,这些元素按其迭代器返回的顺序排列,并用方括号 ("[]") 括起来。相邻元素由字符 ", "(逗号加空格)分隔。通过 String.valueOf(Object) 可以将元素转换成字符串。

此实现会创建一个空字符串缓冲区,追加一个左方括号,然后在 collection 上进行迭代,依次追加每个元素的字符串表示形式。每追加一个元素后(最后一个元素除外),将追加字符串 ", "。最后,追加一个右括号。从字符串缓冲区获取一个字符串并返回它。

覆盖:

类 Object 中的 toString

返回:

此 collection 的字符串表示形式。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有