博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java集合-Collection详解
阅读量:7114 次
发布时间:2019-06-28

本文共 5956 字,大约阅读时间需要 19 分钟。

hot3.png

Collection是一个接口,它主要的两个分支是:List 和 Set。首先我们来看看Collection关系图:

List和Set都是接口,它们继承于Collection。List和Set都有它们各自的实现类。

  • List是有序的队列,List中可以有重复的元素
  • Set是数学概念中的集合,Set中没有重复元素

1、Collection简介

    Collection的定义如下:

public interface Collection
extends Iterable

    Collection抽象集合包含了基本操作添加、删除、清空、遍历(读取)、是否为空...

boolean isEmpty();//判断该集合是否为空boolean contains(Object var1);//判断该集合中是否包含某个元素boolean containsAll(Collection
var1);//判断该集合中是否包含指定集合中的所有元素int size();//获取该集合元素个数Iterator
iterator();//返回该集合的元素上进行迭代的迭代器Object[] toArray();//返回一个数组,该数组包含容器中的所有元素
T[] toArray(T[] var1);//返回数组并包含容器中所有元素,返回结果的运行时类型与参数数组A类型相同。boolean add(E var1);//向集合中添加一个元素boolean addAll(Collection
var1);//将指定Collection中的所有元素添加到该集合中void clear();//删除该集合中的所有元素boolean remove(Object var1);//删除该集合中指定的元素boolean removeAll(Collection
var1);//删除指定集合中的所有元素default boolean removeIf(Predicate
var1)boolean retainAll(Collection
var1);boolean equals(Object var1);int hashCode();default Spliterator
spliterator()default Stream
stream()default Stream
parallelStream()

2、 List简介

    List的定义如下:

public interface List
extends Collection

    List是一个继承于Collection的接口,即List是集合中的一种。List是有序的队列,List中的每一个元素都有一个索引;第一个元素的索引值是0,往后的元素的索引值依次+1。List中允许有重复的元素。和Set不同,其中的元素必须是唯一的。既然List是继承Collection自然包含Collection的全部函数接口。

boolean isEmpty();//判断该集合是否为空boolean contains(Object var1);//判断该集合中是否包含某个元素boolean containsAll(Collection
var1);//判断该集合中是否包含指定集合中的所有元素int size();//获取该集合元素个数Iterator
iterator();//返回该集合的元素上进行迭代的迭代器Object[] toArray();//返回一个数组,该数组包含容器中的所有元素
T[] toArray(T[] var1);//返回数组并包含容器中所有元素,返回结果的运行时类型与参数数组A类型相同。boolean add(E var1);//向集合中添加一个元素void add(int var1, E var2);//将元素element插入在List集合的index处boolean addAll(Collection
var1);//将指定Collection中的所有元素添加到该集合中boolean addAll(int var1, Collection
var2);//将集合var2所包含的所有元素插入到List集合的index处void clear();//删除该集合中的所有元素E remove(int var1);//删除index索引处的元素boolean remove(Object var1);//删除该集合中指定的元素boolean removeAll(Collection
var1);//删除指定集合中的所有元素E get(int var1);//返回集合索引index处的元素E set(int var1, E var2);//将索引index处元素替换成element对象,并将替换后的元素返回int indexOf(Object var1);//返回对象var1在List集合中出现的位置索引int lastIndexOf(Object var1);//返回对象var1在List集合中最后一次出现的位置索引List
subList(int var1, int var2);//返回从索引包括到不包括处所有元素集合组成的子集合boolean retainAll(Collection
var1);default void replaceAll(UnaryOperator
var1)default void sort(Comparator
var1)boolean equals(Object var1);int hashCode();ListIterator
listIterator();ListIterator
listIterator(int var1);default Spliterator
spliterator()

3、Set简介

    Set的定义如下:

public interface Set
extends Collection

Set集合与Collection基本完全一样,它没有提供任何额外的方法。实际上Set就是Collection,只是行为不同(Set不允许包含重复元素)。

boolean isEmpty();//判断该集合是否为空boolean contains(Object var1);//判断该集合中是否包含某个元素boolean containsAll(Collection
var1);//判断该集合中是否包含指定集合中的所有元素int size();//获取该集合元素个数Iterator
iterator();//返回该集合的元素上进行迭代的迭代器Object[] toArray();//返回一个数组,该数组包含容器中的所有元素
T[] toArray(T[] var1);//返回数组并包含容器中所有元素,返回结果的运行时类型与参数数组A类型相同。boolean add(E var1);//向集合中添加一个元素boolean addAll(Collection
var1);//将指定Collection中的所有元素添加到该集合中void clear();//删除该集合中的所有元素boolean remove(Object var1);//删除该集合中指定的元素boolean removeAll(Collection
var1);//删除指定集合中的所有元素default boolean removeIf(Predicate
var1)boolean retainAll(Collection
var1);boolean equals(Object var1);int hashCode();default Spliterator
spliterator()default Stream
stream()default Stream
parallelStream()

5、AbstractCollection

AbstractCollection的定义如下:

public abstract class AbstractCollection
implements Collection

AbstractCollection是一个抽象类,它实现了Collection中除iterator()和size()之外的函数。

AbstractCollection的主要作用:它实现了Collection接口中的大部分函数。从而方便其它类实现Collection,比如ArrayList、LinkedList等,它们这些类想要实现Collection接口,通过继承AbstractCollection就已经实现了大部分的接口了。

6、AbstractList

AbstractList的定义如下:

public abstract class AbstractList
extends AbstractCollection
implements List

AbstractList是一个继承于AbstractCollection,并且实现List接口的抽象类。它实现了List中除size()、get(int location)之外的函数。

AbstractList的主要作用:它实现了List接口中的大部分函数。从而方便其它类继承List。
另外,和AbstractCollection相比,AbstractList抽象类中,实现了iterator()接口。

7、AbstractSet

AbstractSet的定义如下:

public abstract class AbstractSet
extends AbstractCollection
implements Set

AbstractSet是一个继承于AbstractCollection,并且实现Set接口的抽象类。由于Set接口和Collection接口中的API完全一样,Set也就没有自己单独的API。和AbstractCollection一样,它实现了List中除iterator()和size()之外的函数。

AbstractSet的主要作用:它实现了Set接口中的大部分函数。从而方便其它类实现Set接口。

8、Iterator

Iterator的定义如下:

public interface Iterator

Iterator是一个接口,它是集合的迭代器。集合可以通过Iterator去遍历集合中的元素。Iterator提供的API接口,包括:是否存在下一个元素、获取下一个元素、删除当前元素。

boolean hasNext();//如果迭代器指向位置后面还有元素,则返回 true,否则返回falseE next();//获得序列中的下一个元素default void remove()//删除集合中Iterator指向位置后面的元素default void forEachRemaining(Consumer
var1)

9、ListIterator

ListIterator的定义如下:

public interface ListIterator
extends Iterator

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

ListIterator是一个继承于Iterator的接口,它是队列迭代器。专门用于便利List,能提供向前/向后遍历。相比于Iterator,它新增了添加、是否存在上一个元素、获取上一个元素等等API接口。

// 继承于Iterator的接口boolean hasNext();//以正向遍历列表时,如果列表迭代器后面还有元素,则返回 true,否则返回falseE next();//获得序列中的下一个元素void remove();//从列表中删除next()或previous()返回的最后一个元素(有点拗口,意思就是对迭代器使用hasNext()方法时,删除ListIterator指向位置后面的元素;当对迭代器使用hasPrevious()方法时,删除ListIterator指向位置前面的元素)// 新增API接口boolean hasPrevious();//如果以逆向遍历列表,列表迭代器前面还有元素,则返回 true,否则返回falseE previous();//返回列表中指向位置前面的元素int nextIndex();//返回列表中所需位置后面元素的索引int previousIndex();//返回列表中所需位置前面元素的索引void set(E var1);//从列表中将next()或previous()返回的最后一个元素返回的最后一个元素更改为指定元素evoid add(E var1);//将指定的元素插入列表,插入位置为迭代器当前位置之前

 

转载于:https://my.oschina.net/Clarences/blog/1593157

你可能感兴趣的文章
poj 3694 Network
查看>>
对象复制问题 && lvalue-rvalue && 引用
查看>>
第十周作业
查看>>
Bug:LinkedTransferQueue的数据暂失和CPU爆满以及修复
查看>>
使用QFileDiaglog实战designer快速开发
查看>>
博客园,菜鸟程序员报道!!
查看>>
找工作的程序员必懂的Linux
查看>>
sequence——强行推式子+组合意义
查看>>
虚拟机的apache服务器不能被主机访问的问题
查看>>
JsRender练习总结
查看>>
Linux 源码的安装 3个步骤
查看>>
Noip2016提高组 组合数问题problem
查看>>
python学习目录
查看>>
secureCRT scripts as vbs
查看>>
词法分析程序
查看>>
mac 下 php5.6 安装 redis 扩展
查看>>
初识Hadoop
查看>>
面向对象和类
查看>>
经常被问到的面试题1
查看>>
PHP Warning: 的解决方法
查看>>