集合框架-Set接口

Set接口

它是一个不包含副本的Collection。形式上,sets在e1.equals(e2)这样的形式中并不是e1和e2一对元素,至少有一个是空元素。使用它自己的名字作为暗指的元素,这个接口的模型取自数学上的set。

Set接口处于附加的协议上,在构造构造器和构造add,equals和hashCode方法上超过了通过继承得到的其他Collection接口。其他通过继承得到的方法的声明都被包含在此以求方便。(伴随这些声明的文档都经过根据Set接口的筛选,但是它们没有包含附加的协议。)

在构造器上的附加协议是所有的构造器都必须创建一个不包含副本的set元素(向上面说明的那样)。

Note:易变的对象作为Set的元素要格外的小心。当Set的元素的值被以某种方法改变从而影响到相等比较的时候,这样的情况没有被列入Set的文档。这种特殊情况被禁止的原因是Set不可以作为自己的元素。

一些Set的实现在他们包含的元素上有所限制。例如:一些实现禁止空元素,一些禁止特定的元素类型。例如:一些实现禁止空的元素,一些实现限制了他们元素的类型。试图添加一个不符合要求的元素会抛出检查不通过的异常,比较有代表性的就是NullPointerException异常和ClassCastException异常。

试图查询一个不合格的元素是否存在也会抛出异常,或者返回假值;一些实现会列出前者,一些会列出后者。通常情况下,试图对一个不合格的元素进行操作也许会抛出异常,也许会成功告终,决定权在于实现。某些异常在文档中为这个接口标有"optional"字样。

这个接口是Java Collections Framework的一个成员。
父接口:
Collection
子接口:
SortedSet
实现类:
AbstractSet,
HashSet,
LinkedHashSet,
TreeSet
译自:JavaTM 2 Platform, Standard Edition, v 1.4.2 API Specification Java.lang.util Interface Set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值