java 集合框架(1)奠定基础的接口和Collection

原创 2016年05月30日 13:40:21

概述(略)

关于集合的概述很多资料都可以找到,这里就不再列出,仅列出一些相对需要时刻复习的东西。

奠定集合基础的接口

接 口 描 述
Collection 允许操作一组对象,位于集合层次的顶部
Deque 扩展Queue以实现双端队列
List 扩展Collection以处理序列(对象列表)
NavigableSet 扩展SortedSet以基于最接近匹配原则检索元素
Queue 扩展Collection以处理特殊类型的列表,这种类型的列表只能从列表顶部删除元素
Set 扩展Collection以处理集合,集合中的元素必须唯一
SortedSet 扩展Set以处理已排序的集合

接口分析之Collection

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

声明:

interface Collection
其中E指定集合存储的对象的类型。Collection扩展了Iterable接口,所以for-each风格可以遍历所有集合。

声明的方法:

方法 描述
boolean add(E obj) 将obj添加到调用集合中。如果obj被添加到调用集合中,就返回true,如果obj已经是集合成员并且集合元素不允许重复,就返回false
boolean addAll(Collection<? extends E> c) 将c中的所有元素添加到调用集合中。如果调用集合发生了变化(例如添加了元素),就返回true,否则返回false
void clear() 移除调用集合中的所有元素
boolean contains(Objects obj) 如果obj是调用集合中的元素,就返回true,否则返回false
boolean containsAll(Collection<?> c) 如果调用集合包含c的所有元素,就返回true,否则返回false
boolean equals(Object obj) 如果调用集合与obj相等,就返回true,否则返回false
int hashCode() 返回调用集合的散列码
boolean isEmpty() 如果调用集合为空,就返回true,否则返回false
Iterator<E> iterator() 返回调用集合的一个迭代器
default Stream<E> parrallelStream() 返回一个使用调用集合作为元素来源的流,这个流支持并行操作(jdk 8 新增)
boolean remove(Object obj) 从调用集合移除obj的一个实例,如果移除了元素返回true,否则false
boolean removeAll(Collection<?> c) 从调用集合中移除c的所有元素,如果发生了变化(移除了元素),则返回true,否则false
default boolean removeIf(Predicate<? super E> predicate) 从调用集合中移除满足predicate指定条件的那些元素(jdk 8 新增)
boolean retainAll(Collection<?> c) 移除调用集合中除c中元素之外所有元素,如果集合发生变化(移除了元素),则返回true,否则false
int size() 返回数量
default Spliterator<E> spliterator() 返回调用集合的Spliterator**(jdk 8 新增)**
default Stream<E> stream() 返回一个使用调用集合作为元素来源的流。该流是顺序流(jdk 8 新增)
Object[] toArray() 返回包含调用集合中所有元素的数组,数组元素是集合元素的副本
<T> T[] toArray(T array[]) 返回包含调用集合中元素的数组。数组元素是集合元素的副本。 ①如果array的长度等于元素的数量,就保存在array中 ②如果array的长度小于元素数量,就分配必须大小的新数组并且返回这个数组 ③如果array的长度大于元素的数量,就将最后一个元素数组之后的数组元素设置为null ④如果所有集合元素的类型都不是array的子类型,那么抛出ArrayStoreException异常

异常

  • 如果集合不能被修改,可能出现UnsupportedOperationException异常
  • 如果一个对象和另一个对象不兼容,可能出现ClassCastException,例如将一个不兼容的对象添加到集合中的时候就会出现
  • 如果试图在不允许存储null的对象中存储null对象,那么会出现NullPointerException异常
  • 如果使用参数无效,会抛出IllegalArgumentException异常
  • 如果试图为长度固定并且已经满了的集合添加元素,那么会抛出IllegalStateException异常

注意

  • add()方法要求的参数类型为E,切必须和集合期望的对象兼容
  • toArray()的第二种形式更加方便,因为返回的类型是指定为参数的类型,第一种是返回Object类型的数组。
  • equals()的相等性根据不同的集合有不同的含义。
  • 新增的removeIf()方法可以用来移除满足特定条件的元素,Predicate是jdk8新增的的一个函数式接口
  • iterator()返回集合的一个迭代器,**新增的**spliterator()方法返回集合的一个spliterator,都是操作集合时会频繁用到的迭代器。
版权声明:转载请保留出处

Java集合框架(Collection)和数组的排序

Java集合框架和数组的排序
  • zolalad
  • zolalad
  • 2014年06月11日 14:27
  • 4146

【java集合一】根接口Collection、Map

Java集合类是一种非常实用的工具类,主要用于保存、盛装其它数据(集合里只能保存对象),因此集合类也被成为容器类。所有的集合类都位于java.util包下,在java.util.concurrent下...
  • chenyanmoting
  • chenyanmoting
  • 2016年05月31日 21:50
  • 919

Java集合框架之Collection实例解析

0、集合引入1)集合的由来?Java是面向对象语言,操作很多对象,必要时需存储对象,常见容器(数组和StringBuffer或StringBuilder), 而数组的长度固定,所以不适合做变化的需求,...
  • qq_28261343
  • qq_28261343
  • 2016年09月22日 00:49
  • 7116

Java集合框架学习笔记之集合与Collection API

一、CollectionAPI     集合是一系列对象的聚集(Collection)。集合在程序设计中是一种重要的数据接口。Java中提供了有关集合的类库称为CollectionAPI。     ...
  • HanTangSongMing
  • HanTangSongMing
  • 2014年05月27日 08:22
  • 4547

[学习笔记]Java集合框架以及Collection顶层接口

集合框架 概述 数组容器由于无法扩展容量,也没有更多的功能可以使用,而Java中的另一种容器:集合,就能满足这些要求。 特点 集合中的每一个元素都是对象,存储的实际上是对象的引用。集合...
  • jacobvv
  • jacobvv
  • 2014年12月14日 22:39
  • 3205

Java Collection集合框架关系详解

上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,Abstract...
  • WangQYoho
  • WangQYoho
  • 2016年09月11日 20:55
  • 611

JAVA集合框架01之概要

一、定义     集合框架是为表示和操作集合而规定的一种统一的标准的体系结构,在java中的集合框架主要分为两部分:Collection接口和Map接口。 二、  用法 (一)集合框架涉及的...
  • moHedong
  • moHedong
  • 2015年06月10日 15:51
  • 4819

详解Java集合框架的接口和类层次关系

一位国外的java大神用3张图表示了Java集合框架的接口和类层次关系,并配有代码示例 让你秒懂他们之间的关系,废话不多,直接上图:   Collection和Collections...
  • qq_32506555
  • qq_32506555
  • 2016年06月23日 22:01
  • 876

关于Collection框架的学习笔记

Collection框架 集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList...
  • neuqxzy
  • neuqxzy
  • 2014年08月29日 09:15
  • 1816

常用JAVA集合框架(Collection、List、Set、Map)

1.常用集合框架结构 2. List   2.1 ArrayList List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List ...
  • sdauzxl
  • sdauzxl
  • 2016年07月29日 20:17
  • 1830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 集合框架(1)奠定基础的接口和Collection
举报原因:
原因补充:

(最多只允许输入30个字)