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

一、源码解析

1、接口定义

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

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

2、查询方法

     //      返回数组的长度,如果数组的长度大于Integer最大值,返回Integer最大值。int size();//        判断该集合是否为有元素boolean isEmpty();//     判断元素o是否在集合中boolean contains(Object o);//        获取集合的交集,如果集合有改变那么返回为true,否则返回为false。boolean containsAll(Collection<?> c);

3、操作集合元素的方法

     //  将元素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、其他方法

     //      返回一个包含此集合中所有元素的数组Object[] toArray();//      返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型<T> T[] toArray(T[] a);//      获取集合的流,返回可能并行的以此集合作为源的Streamdefault Stream<E> stream() {return StreamSupport.stream(spliterator(), false);}//      获取集合的并行default Stream<E> parallelStream() {return StreamSupport.stream(spliterator(), true);}//       获取迭代器Itertorpublic abstract Iterator<E> iterator();//     返回集合的Spliteratordefault Spliterator<E> spliterator() {return Spliterators.spliterator(this, 0);}//        判断两个集合是否相同boolean equals(Object o);//       获取集合的hashcodeint hashCode();

二、总结

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

JDK源码解析之Java.util.Collection相关推荐

  1. JDK源码解析之Java.util.Collections

    java.util.Collections 是一个包装类.它包含有各种有关集合操作的静态多态方法.此类不能实例化,就像一个工具类,服务于Java的Collection框架. 一.源码解析 1.不可实例 ...

  2. JDK源码解析之java.util.AbstractCollection

    AbstractCollection类提供了collection的实现类应该具有的基本方法,具有一定的普适性,可以从大局上了解collection实现类的主要功能. java.util.Abstrac ...

  3. JDK源码解析之java.util.ListIterator

    ListIterator是一个功能更加强大的迭代器接口, 它继承于Iterator接口,只能用于各种List类型的访问.可以通过调用listIterator()方法产生一个指向List开始处的List ...

  4. JDK源码解析之java.util.Iterator和java.lang.Iterable

    在Java中,我们可以对List集合进行如下几种方式的遍历:第一种就是普通的for循环,第二种为迭代器遍历,第三种是for each循环.后面两种方式涉及到Java中的iterator和iterabl ...

  5. JDK源码解析之 Java.lang.Compiler

    Compiler类提供支持Java到本机代码编译器和相关服务.在设计上,它作为一个占位符在JIT编译器实现. 一.源码部分 public final class Compiler {private C ...

  6. JDK源码解析之 java.lang.Exception

    异常.是所有异常的基类,用于标识一般的程序运行问题.这些问题通常描述一些会被应用程序捕获的反常情况. 一.源码部分 //继承了java.lang.Throwable public class Exce ...

  7. JDK源码解析之 java.lang.Error

    java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况. 一.源码部分 //继承了java.lang.Throwable ...

  8. JDK源码解析之 java.lang.Thread

    位于java.lang包下的Thread类是非常重要的线程类,它实现了Runnable接口,今天我们来学习一下Thread类,在学习Thread类之前,先介绍与线程相关知识:线程的几种状态.上下文切换 ...

  9. JDK源码解析之 java.lang.Integer

    teger 基本数据类型int 的包装类 Integer 类型的对象包含一个 int 类型的字段 一.类定义 public final class Integer extends Number imp ...

最新文章

  1. html5通html5通,HTML5 history详解
  2. 用vue优雅地编写UI组件的几条指导原则
  3. c# 18位身份证源代码
  4. c# try-finally有什么用
  5. 计算机视觉开源库OpenCV之CommandLineParser使用方法
  6. oracle数据库impdp导入dmp文件功能演示,imp导入IMP-00038: Could not convert to environment character sets handle问题解决
  7. 1001 Calculate a + b
  8. C语言试题六十六之请编写函数实现三个数从小到大排序
  9. 操作系统的线程和进程的区别_面试官:你熟悉多线程嘛?线程跟进程有什么区别?...
  10. NOIP2017年11月9日赛前模拟
  11. rocketmq存储结构_RocketMQ消息存储
  12. iOS:删除、插入、移动单元格
  13. 利用getData获取图片中的图表信息数据
  14. 一款小工具DeskPinsEx开发笔记
  15. 怎么解决图片用PSCC打开后,白色部分全部呈现米黄色?
  16. 7-45 实验8_2_推销员的便条 (100 分)
  17. 测试用例的设计方法_场景设计法
  18. MATLAB图像融合分割系统
  19. 使用uni-app把h5网页封装成app
  20. cpu的基本结构及其工作原理

热门文章

  1. java403forbidden_java – Spring boot – 返回403 Forbidden而不是重定向到登录页面
  2. 北理在线作业答案c语言,北理工19春《面向对象程序设计》在线作业【标准答案】...
  3. java crontriggerbean_java – 使用JobStoreTX为石英聚类配置CronTriggerFactoryBean
  4. oracle rollup分组没有数据时为0_数据库周刊19│GBASE适配鲲鹏;MySQL窗口函数;OGG双向数据同步……...
  5. python语言发明者 google_看看9种编程语言的发明者是怎么说的
  6. python 函数进度条怎么_刷新你对进度条的认识,用python写出不一样的进度条
  7. php sql查询两个表语句,sql多表查询语句与方法
  8. 4 插件模块_设计师必备的ps插件推荐
  9. php 文件保存函数,php 写入和读取文件函数
  10. modern android5.1,Modern摩登印