前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JDK源码解析之Java.util.Collection

JDK源码解析之Java.util.Collection

作者头像
栗筝i
发布2022-12-01 20:22:38
2290
发布2022-12-01 20:22:38
举报
文章被收录于专栏:迁移内容迁移内容

Collection是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素,JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现

一、源码解析

1、接口定义
代码语言:javascript
复制
public interface Collection<E> extends Iterable<E>{}

collection继承自Iterable,所以其有Iterable的所有相关的方法。

2、查询方法
代码语言:javascript
复制
		//		返回数组的长度,如果数组的长度大于Integer最大值,返回Integer最大值。
    int size();
		//		判断该集合是否为有元素
    boolean isEmpty();
  	//		判断元素o是否在集合中
    boolean contains(Object o);
  	//		获取集合的交集,如果集合有改变那么返回为true,否则返回为false。
    boolean containsAll(Collection<?> c);
3、操作集合元素的方法
代码语言:javascript
复制
		//	将元素E添加到该集合中
    boolean add(E e);
		//	将集合c添加到该集合中
    boolean addAll(Collection<? extends E> c);
		//	将该集合清空
    void clear();
		//	从集合中删除o元素
    boolean remove(Object o);
		//	从集合中删除c集合
    boolean removeAll(Collection<?> c);		
		//	仅保留该集合中那些也包含在指定集合c中的元素
    boolean retainAll(Collection<?> c);
  	//	删除满足给定谓词的此集合的所有元素
  	default boolean removeIf(Predicate<? super E> filter) {
        Objects.requireNonNull(filter);
        boolean removed = false;
        final Iterator<E> each = iterator();
        while (each.hasNext()) {
            if (filter.test(each.next())) {
                each.remove();
                removed = true;
            }
        }
        return removed;
    	}
4、其他方法
代码语言:javascript
复制
		//		返回一个包含此集合中所有元素的数组
    Object[] toArray();
		//		返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型
    <T> T[] toArray(T[] a);
		//		获取集合的流,返回可能并行的以此集合作为源的Stream
    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }
		//		获取集合的并行
		default Stream<E> parallelStream() {
        return StreamSupport.stream(spliterator(), true);
    }
		//		获取迭代器Itertor
		public abstract Iterator<E> iterator();
  	//		返回集合的Spliterator
  	default Spliterator<E> spliterator() {
        return Spliterators.spliterator(this, 0);
    }
		//		判断两个集合是否相同
    boolean equals(Object o);
    // 		获取集合的hashcode
    int hashCode();

二、总结

Collection接口是最基本的集合接口,它在继承了Iterable接口方法的同时,提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现,在后面我会向大家一一介绍。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、源码解析
    • 1、接口定义
      • 2、查询方法
        • 3、操作集合元素的方法
          • 4、其他方法
          • 二、总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档