java源码阅读接口篇之java.util.Collection

7 篇文章 0 订阅
5 篇文章 0 订阅

java.util.Collection是个接口,很容易和工具类java.util.Collections弄混淆。今天我就抽丝剥茧来研究一下这个接口。

这里我基于JDK1.7.0_80的Collections接口进行研究,以避免JDK1.8引入的StreamAPI和函数式编程接口。

一、接口定义:

public interface Collection<E> extends Iterable<E> {

Collection是继承自Iterable接口的,并且是V值集合结构,非K-V值集合。关于Iterable接口,我另有文章介绍。这里先不做说明:

值得注意的是,这个接口是JDK1.2版本才开始出现的。

二、接口里规定的方法:

1、集合大小

int size();

2、判断集合是否为空:

boolean isEmpty();

其实这个方法,在日常使用中经常被第一个方法size()掩盖住了光芒。我见过很多人都是调用size() == 0来进行判断。

3、迭代器模式的体现,当然这个也是继承自Iterable而来的。

Iterator<E> iterator();

注意Iterable接口是在java.lang包下面的。

4、适配器模式的体现:

Object[] toArray();
 <T> T[] toArray(T[] a);

5、增删查大家族:(没有改)

(1)增:

//增加一个
boolean add(E e);
//增加多个
boolean addAll(Collection<? extends E> c);

(2)删:

//删一个
boolean remove(Object o);
//删多个
boolean removeAll(Collection<?> c);
//全删掉
void clear();

(3)查:

//查一个
boolean contains(Object o);
//查多个,要求都在
boolean containsAll(Collection<?> c);

6、集合比较:

boolean equals(Object o);

7、hash值计算:

 int hashCode();

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值