Collection集合分析(1)

前言

集合是我们在日常开发中经常使用,它位于java.util包,顾名思义,他是java的工具类,帮助我们完成各种操作,他充分利用了java的继承来实现他的功能。以下是我画的一个集合的一个继承关系图,主要牵涉到是ArrayList,LinkedList,HashSet,TreeSet这几个集合类,我在这里也是通过这几个集合类来画他的基础关系,真实情况下,他的继承关系还要复杂的多。
在这里插入图片描述

Collection

在这一章中,我主要要说的就是这个接口Collection,他定义了集合必须要有的规范,我们可以通过IDEA的工具查看他定义了什么抽象方法和默认实现
在这里插入图片描述
我们可以发现他有四个默认实现,而且这四个默认实现都是从jdk1.8才有的,分别是removeIf(Predicate<? super E> filter),Spliterator spliterator(),Stream stream(),Stream parallelStream()
我们可以发现,后面的三个默认实现方法他主要是为了获取Stream,这个Stream是jdk1.8新加入的,他能帮助我们简化很多代码,提高效率,因为他是以流的方式进行操作的。这里就不多说明了。
而第一个默认实现removeIf,他使用的是迭代器来遍历所有元素,使用Iterator删除每个匹配的元素,如果集合的Iterator不支持删除,就抛出异常UnsupportedOperationException。

int size();

返回集合的大小

boolean isEmpty();

是空集合就返回true,否则为false

boolean contains(Object o);

判断是否包含o这个元素,有就返回true,否则返回false

Iterator iterator();

获取迭代器

Object[] toArray();

将集合转换为一个Object数组

T[] toArray(T[] a);

与上面的类型,只是这个是泛型实现,

boolean add(E e);

添加元素到集合中,成功返回true,否则返回false

boolean remove(Object o);

从集合中删除第一个o元素

boolean containsAll(Collection<?> c);

判断集合是否包含c集合的所有元素,包含返回true,否则false

boolean addAll(Collection<? extends E> c);

将集合c的元素全部添加到本身

boolean removeAll(Collection<?> c);

移除所有集合c中在本身集合包含的元素

boolean retainAll(Collection<?> c);

仅保留此集合中包含在指定集合中的元素

void clear();

清空集合

boolean equals(Object o);

比较

这就是Collection定义的规范,他的子类被要求实现这些功能,才能使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值