Java学习关于集合框架的基础接口--Collection接口
集合框架(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()
clear
void clear()
从此集合中删除所有元素(可选操作)。 此方法返回后,集合将为空。异常 UnsupportedOperationException - 如果此 集合不支持clear操作
add
boolean add(E e)
如果一个集合拒绝添加一个特定的元素,除了它已经包含该元素之外,它必须抛出异常(而不是返回false )。 这保留了一个集合在此调用返回后始终包含指定元素的不变量。
- 参数
e- 要确保在此集合中的存在的元素 - 结果 true如果此集合由于调用而更改
- 异常
UnsupportedOperationException- 如果此 集合不支持add操作ClassCastException- 如果指定元素的类阻止将其添加到此集合NullPointerException- 如果指定的元素为空,并且该集合不允许空元素IllegalArgumentException- 如果元素的某些属性阻止其添加到此集合IllegalStateException- 如果由于插入限制,此时无法添加该元素
Java学习关于集合框架的基础接口--Collection接口的更多相关文章
- Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口
通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素.一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象 ...
- java学习第六天集合框架.day15
Set接口 Set集合存储特点: 不允许元素重复 不会记录元素的添加先后顺序 Set只包含从Collection继承的方法,不过Set无法记住添加的顺序,不允许包含重复的元素.当试图添加两个相同元素进 ...
- java学习笔记20(Arraylist复习,Collection接口方法,迭代器,增强型for循环)
集合:集合是Java提供的一种容器,可以用来存储多个数据: 集合与数组的区别:集合的长度是可变的,数组的长度是固定的 集合中存储的数据必须是引用类型数据: ArrayList回顾: public cl ...
- Java学习之集合(Collection接口)
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储 集合特点: 1.用于存储对象的容器 2.集合长度可变 3.不可以存储基本数据类型 集合体系的顶层C ...
- Java中的集合框架(上)
Java中的集合框架概述 集合的概念: Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象. 集合的作用: 1.在类的内部,对数据进行组织: 2.简单的快速的搜索大数据量的 ...
- JAVA之旅(十八)——基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用
JAVA之旅(十八)--基本数据类型的对象包装类,集合框架,数据结构,Collection,ArrayList,迭代器Iterator,List的使用 JAVA把完事万物都定义为对象,而我们想使用数据 ...
- 第48节:Java当中的集合框架
Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...
- Java当中的集合框架
Java当中的集合框架 01 在我们班里有50位同学,就有50位对象. // 简书作者:达叔小生 Student[] stus = new Student[20]; 结果来了一位插班生,该同学因为觉得 ...
随机推荐
- BZOJ1026(数位dp)
数位dp第二道-就当成搜索,套板子写了写.我写的dp[pos][pre][state0]记录的是当前pos位没有限制时.前面的数是pre时.前面是否都是0时的方案数. #include <cst ...
- 什么是极坐标? —— 一点微小的想法 What is Polar Coordinate ? - Some Naive Thoughts about It
Can you answer these three questions? The answer seems to be trivial, since we can use our eyes to o ...
- nodejs on raspi
一. https://cnodejs.org/topic/54032efa9769c2e93797cd06 其中的 “安装Node.js” 一节 注意事项: 1. 它用的是v0.10.26(很早的版本 ...
- 前端之CSS语法及选择器
一.css语法: css由两大部分组成:选择符和声明,声明由属性和属性值两部分组成; 选择符{属性:属性值;属性:属性值;} 注: a) 属性和属性值之间用冒号连接: b)每条声明结束要加分号: 二. ...
- AJPFX总结List的三个子类的特点
ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. ...
- 死磕 java并发包之AtomicInteger源码分析
问题 (1)什么是原子操作? (2)原子操作和数据库的ACID有啥关系? (3)AtomicInteger是怎么实现原子操作的? (4)AtomicInteger是有什么缺点? 简介 AtomicIn ...
- PKU_campus_2018_A Wife
思路: 题目链接http://poj.openjudge.cn/practice/C18A/ 先说一个结论,每一天要么7要么0,由此提供一种状态压缩dp的解法. 实现: #include <bi ...
- 洛谷P2774 方格取数问题(最小割)
题意 $n \times m$的矩阵,不能取相邻的元素,问最大能取多少 Sol 首先补集转化一下:最大权值 = sum - 使图不连通的最小权值 进行黑白染色 从S向黑点连权值为点权的边 从白点向T连 ...
- 使用docker搭建gitlab 服务器
本次使用的docker版本为 1.首先需要安装docker. 2.启动docker后,service docker start 3.拉取镜像 docker pull gitlab/gitlab- ...
- TebsorFlow低阶API(五)—— 保存和恢复
简介 tf.train.Saver 类提供了保存和恢复模型的方法.通过 tf.saved_model.simple_save 函数可以轻松地保存适合投入使用的模型.Estimator会自动保存和恢复 ...