java源码分析---Collection类


更多源码分析,请点击


Collection

Collection接口:单列集合,用来存储一个一个的对象。主要有以下三个子接口。

在这里插入图片描述

  • List接口:存储有序的,可重复的数据。 --> “动态”数组

    • ArrayList、LinkedList、Vector

      同:三个类都实现了List接口,存储数据的特点相同:存储有序的、可重复的数据;

      异:ArrayList线程不安全,效率高;Vector线程安全,效率低,底层使用Object[]存储
      LinkedList底层使用双向链表存储,对于频繁的插入、删除操作,效率较高;

  • Set接口:存储无序的、不可重复的数据。向Set中添加数据,其所在的类一定要重写hashCode()和equals()

    • HashSet、LinkedHashSet、TreeSet;添加的元素按照equals()判断时,不能返回true。即,相同的元素只能添加一个

      HashSet线程不安全,可以存储null值;

      LinkedHashSet作为HashSet的子类,遍历其内部数据时,可以按照添加的顺序遍历;

      TreeSet可以按照添加对象的指定属性,进行排序;

  • Queue接口:队列,先进先出,不允许插入null。

public interface Collection<E> extends Iterable<E> 

Collection 接口继承了 Iterable 接口,实现 Iterable 接口可以使对象使用增强for循环语句(for-each)。

同时, Collection 接口中定义了如下方法,具体实现请参考相关实现类

返回值类型方法作用
intsize()返回此集合中的元素个数
booleanisEmpty()如果此集合不包含任何元素,则返回true
booleancontains(Object o)返回此集合是否包含指定元素o
Iterator<E>iterator()返回此集合中元素的迭代器
Object[]toArray()返回一个包含此集合中所有元素的数组
<T> T[]toArray(T[] a)以指定的类型T返回包含此集合中所有元素的数组
default <T> T[]toArray(IntFunction<T[]> generator)使用提供的generator函数分配返回的数组
booleanadd(E e)确保集合中包含指定的元素,集合不允许重复且已包含该元素时返回false
booleanremove(Object o)如果集合中存在指定元素o,则删除该元素
booleancontainsAll(Collection<?> c)如果当前集合包含指定集合中的所有元素,返回true
booleanaddAll(Colletion<? extends E> c)将指定集合中的所有元素添加到此集合中
booleanremoveAll(Collection<?> c)删除也包含在指定集合中的所有此集合的元素
default booleanremoveIf(Predicate<? super E> filter)删除此集合中满足给定谓词的所有元素
booleanretainAll(Collection<?> c)仅保留此集合中包含在指定集合中的元素
voidclear()删除集合中所有元素
booleanequals(Object o)比较当前集合和指定对象是否相等
inthashCode()返回当前集合的哈希值
default Spliterator<E>spliterator()在此集合中的元素上创建一个spliterator
default Stream<E>stream()返回以该集合为源的Stream序列
default Stream<E>parallelStream()返回以该集合为源的并行Stream序列

更多源码分析,请点击

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值