集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中。集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术。Java集合框架标准化了程序处理对象组的方式。

  集合框架在设计上需要满足几个目标。首先,框架必须是高性能的。基本集合(动态数组、链表、树以及哈希表)的实现是高效率的。很少需要手动编写这些数据引擎中的某一个。其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性。再次,扩展或改造必须易于实现。为了满足这些目标,整个集合框架基于一套标准接口进行构造,提供了这些接口的一些可以直接使用的标准实现(如LinkedList、HashSet和TreeSet)。作为一种选择,也可以实现自己的集合。为了方便,提供各种特定目的的实现。最后,必须添加可以将标准数组集成到集合框架中的机制。

  算法是集合机制的另外一个重要组成部分。算法操作集合,并且被定义为Collections类中的静态方法。因此,所有集合都可以使用它们。

  与集合框架密切相关的另一个内容是 Iterator 接口。迭代器为访问集合中的元素提供了通用、标准的方式,每次访问一个元素。因为每个集合都提供了迭代器,所以可以通过Iterator定义的方法访问所有集合类的元素。

  Collection接口是构建集合框架的基础,因为定义集合的所有类都必须实现该接口,Collection是泛型接口

  public interface Collection<E> extends Iterable<E>其中,E指定了集合中存储的对象类型。Collection接口扩展了 Iterator 接口。
方法 说明
boolean  add(E e)
确保此集合包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c)
将指定集合中的所有元素添加到此集合(可选操作)。
void  clear()
从此集合中删除所有元素(可选操作)。
boolean   contains(Object o)

如果此集合包含指定的元素,则返回 true
boolean   containsAll(Collection<?> c)
如果此集合包含指定 集合中的所有元素,则返回true。
boolean   equals(Object o)
将指定的对象与此集合进行比较以获得相等性。
int    hashCode()
返回此集合的哈希码值。
boolean    isEmpty()
如果此集合不包含元素,则返回 true 。 
boolean   remove(Object o)                                 
从该集合中删除指定元素的单个实例(如果存在)(可选操作)。移除返回true
boolean    removeAll(Collection<?> c)
删除指定集合中包含的所有此集合的元素(可选操作)。
default boolean removeIf(Predicate<? super E> filter)
删除满足给定谓词的此集合的所有元素。
boolean    retainAll(Collection<?> c)
仅保留此集合中包含在指定集合中的元素(可选操作)。
int     size()
返回此集合中的元素数。 
Object[]    toArray()                                            
返回一个包含此集合中所有元素的数组。
<T> T[]    toArray(T[] a)
返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。

方法详细信息

  • toArray

  Object[] toArray()
返回一个包含此集合中所有元素的数组。 如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。返回的数组将是“安全的”,因为该集合不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组,即使这个集合是由数组支持的)。 因此,调用者可以自由地修改返回的数组。此方法充当基于阵列和基于集合的API之间的桥梁。结果一个包含此集合中所有元素的数组 
  • clear

  void clear()

  从此集合中删除所有元素(可选操作)。 此方法返回后,集合将为空。异常  UnsupportedOperationException - 如果此 集合不支持clear操作

  • add

boolean add(E e)
确保此集合包含指定的元素(可选操作)。 如果此集合由于调用而更改,则返回true 。 (如果此集合不允许重复,并且已包含指定的元素,则返回false。 )支持此操作的集合可能会限制可能添加到此集合的元素。 特别是一些集合拒绝添加null种元素,和其他人将强加可添加元素的类型限制。 收集类应在其文档中明确说明可能添加哪些元素的限制。

如果一个集合拒绝添加一个特定的元素,除了它已经包含该元素之外,它必须抛出异常(而不是返回false )。 这保留了一个集合在此调用返回后始终包含指定元素的不变量。

参数e - 要确保在此集合中的存在的元素结果   true如果此集合由于调用而更改异常
UnsupportedOperationException - 如果此 集合不支持add操作
ClassCastException - 如果指定元素的类阻止将其添加到此集合
NullPointerException - 如果指定的元素为空,并且该集合不允许空元素
IllegalArgumentException - 如果元素的某些属性阻止其添加到此集合
IllegalStateException - 如果由于插入限制,此时无法添加该元素 

转载于:https://www.cnblogs.com/sdlzspl/p/7236877.html

Java学习关于集合框架的基础接口--Collection接口相关推荐

  1. Java学习---day14_集合框架03

    Java学习-day14_集合框架03 Set集合 Set集合中,没有下标的概念 Set集合,是一个去重复的集合.在Set集合中不会添加重复的元素的 在向一个Set集合中添加元素的时候,会先判断这个元 ...

  2. 【java学习】集合框架

    1,常用map AbstractMap 的成员变量:transient, volatile修饰 transient volatile Set<K> keySet;//keySet, 保存 ...

  3. 黑马程序员java学习日记——集合框架

    ------- android培训.java培训.期待与您交流! ---------- Java.util包中提供了一些集合类,这些集合类又被称为容器.集合类与数组的不同之处是,数组长度是固定的,集合 ...

  4. java学习日记 集合框架

    集合框架 有两大接口  一个是 Collection (类集 )与Map (映射): collection 下有两大接口  一个是List (列表) 另一个是Set(集合) List (列表):Arr ...

  5. Java高级特性 集合框架、泛型和Collection(一)(第二十三天)

    集合的使用: 如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象--可以使用Java集合框架 java集合框架: 在java中数据结构是以某种形式将数据组织在一起的集合.他们不仅存储数据 ...

  6. java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)

    集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...

  7. 第48节:Java当中的集合框架

    Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...

  8. 【JAVA学习】1、零基础入门Java 基础语法:概念、规则、格式

    [JAVA学习]1.零基础入门Java 基础语法 前言 JAVA开发环境选择 Java 基础概念 Java 标识符 Java修饰符 基础代码模板框架 命名规则 基础规则 后端开发规则 代码格式 前言 ...

  9. Java的并发集合框架

    文章目录 一.并发集合框架 1. 简介 2. 接口Iterable 2. 接口Collection 3. 接口List 4. 接口Set 5. 接口Queue 6. Deque 二.非阻塞队列 1. ...

最新文章

  1. firebase 发生消息_如何在命令行提示符下显示当前的Firebase项目名称,以防止发生危险错误...
  2. 继AutoML后,第四范式发布软硬一体化AI集成系统SageOne
  3. 基于SharePoint大型企业协同门户产品-永久免费
  4. python向mysql中添加数据_Django save()方法不向Mysql数据库插入数据
  5. 图像滤波之高斯滤波介绍
  6. 大话TreeMap的put,get过程
  7. Keras TensorFlow 混编中 trainable=False设置无效
  8. Spring学习总结(22)——Spring-framework-bom解决spring的不同模块依赖版本不同问题
  9. 随想录(ros学习笔记)
  10. cad结构字体_AutoCAD字体选择:如何快速选中gbcbig.shx通用字体
  11. M480 EMAC驱动01-EMAC底层接口
  12. 一尺、一英尺、一寸和一英寸分别等于多少厘米?
  13. 改了dns服务器有没有影响,dns改成114有危险吗_dns改了有什么影响
  14. 0.96寸OLED(SSD1306)屏幕显示(一)——基础功能介绍
  15. 关于汇编跳转指令的说明
  16. Android Studio 配置翻译工具
  17. 在了解VR的途中看到文章
  18. 【OCR技术系列之一】字符识别技术总览
  19. 老照片修复_使用条款
  20. fcn_101代码理解

热门文章

  1. OpenGL(三)——OpenGL着色器基础
  2. 台达伺服驱动器说明书_干货:伺服调机实例讲解
  3. html svg画图
  4. ieee802.11数据radiotap介绍
  5. Day9 深度学习入门
  6. java如何记住登录状态_Spring security实现记住我下次自动登录功能过程详解
  7. 【es】es 编译 jar hell!
  8. 【Spring】Spring lazy-init:bean延迟初始化
  9. spark学习-57-Spark下Scala版HBase下的根据权重获取最真实数据
  10. Linux : rz、sz命令-从本地拷贝文件到服务器