(请关注 本人“集合总集篇”博文——《详解 集合框架》

首先,本人来讲解下 Collection集合的继承体系

Collection集合 的继承体系:

Collection接口是集合框架 的 顶层接口之一,而Collection接口的继承体系如下所示:

父接口:

  • Iterable接口

子接口:

  • List泛型接口,
  • BeanContext,
  • BeanContextServices,
  • BlockingDeque泛型接口,
  • BlockingQueue泛型接口,
  • Deque泛型接口,
  • NavigableSet泛型接口
  • Queue泛型接口
  • Set泛型接口
  • SortedSet泛型接口

子实现类:

  • ArrayList
  • LinkedList
  • Vector
  • HashSet
  • LinkedHashSet,

    TreeSet

    AbstractCollection, AbstractList, AbstractQueue, AbstractSequentialList, AbstractSet, ArrayBlockingQueue, ArrayDeque, AttributeList, BeanContextServicesSupport, BeanContextSupport, ConcurrentLinkedQueue, ConcurrentSkipListSet, CopyOnWriteArrayList, CopyOnWriteArraySet, DelayQueue, EnumSet, JobStateReasons, LinkedBlockingDeque, LinkedBlockingQueue, PriorityBlockingQueue, PriorityQueue, RoleList, RoleUnresolvedList, Stack, SynchronousQueue,

上示为Collection接口的 实现类 和 子接口。

但是,在我们今后的学习工作过程中,主要应用的 实现类 和 子接口 如下:


Collection集合 的常用API:

本人现在按照功能来介绍一下这个接口的API,以便后续内容的讲解:

  1. 添加功能
  • boolean add(Object obj):

    添加一个元素
  • boolean addAll(Collection c):

    添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
  1. 删除功能
  • void clear():移除所有元素
  • boolean remove(Object o):

    移除一个元素
  • boolean removeAll(Collection c):

    移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素 如果没有交集元素

    删除失败 返回false
  1. 判断功能
  • boolean contains(Object o):

    判断集合中是否包含指定的元素
  • boolean containsAll(Collection c):

    判断集合中是否包含指定的集合元素

    (这个集合 包含 另一个集合中所有的元素才算包含 才返回true)

    比如:1,2,3 containsAll 1,2=true

    1,2,3 containsAll 2,3,4=false
  • boolean isEmpty():

    判断集合是否为空
  1. 把集合转换为数组
  • Object[] toArray()
  1. 长度功能
  • int size():元素的个数
  1. 交集功能
  • boolean retainAll(Collection c):获取两个集合的交集元素(交集:两个集合都有的元素)
  1. 获取功能
  • Iterator iterator()(重点)

那么,如果我们想要遍历一个集合,按照我们之前的手段,肯定是先把集合转换成一个数组,然后遍历这个数组。

但是,这样一来,在特定的情况下,是很麻烦的

所以Java提供了一个机制来解决这个问题 —— 迭代器


迭代器:

请关注本人博文——《详解 迭代器 —— Iterator接口、 ListIterator接口 与 并发修改异常》


那么,现在,本人来通过两篇博文来分别讲解下 Collection集合的继承体系中 两个重要子接口 —— List接口Set接口

List接口:

请关注本人博文《详解 List接口》


Set接口:

请关注本人博文《详解 Set接口》


那么,本篇博文的主要内容就讲解完了,若是对上述知识点或代码有任何疑惑、意见或者建议,请在下方评论区提出,本人将尽早予以答复,觉得有所帮助的同学请留下小赞赞,谢谢!!!

(集合总集篇链接:https://www.cnblogs.com/codderYouzg/p/12416560.html

详解 Collection集合的更多相关文章

  1. Java集合排序及java集合类详解--(Collection, List, Set, Map)

    1         集合框架 1.1         集合框架概述 1.1.1         容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...

  2. 详解 Map集合

    (请关注 本人"集合总集篇"博文--<详解 集合框架>) 首先,本人来讲解下 Map集合 的特点: Map集合 的特点: 特点: 通过 键 映射到 值的对象 一个 映射 ...

  3. JAVA集合详解(Collection和Map接口)

    原文地址http://blog.csdn.net/lioncode/article/details/8673391 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父 ...

  4. 详解Map集合体系及方法entrySet、keySet、values

    简单回顾Map集合: Map表示映射关系,以键值对的方式来保存数据.key和value一一对应.key是唯一的,不可重复,而value是可重复的,可以被多个key关联.虽然Map是放入两个数据,但是却 ...

  5. 详解SQL集合运算

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...

  6. Tarjan算法详解理解集合

    [功能] Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量.强连通分量是指有向图G里顶点间能互相到达的子图.而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连 ...

  7. java如何对map进行排序详解(map集合的使用)

    今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map 在讲解Map排 ...

  8. 详解 迭代器 —— Iterator接口、 ListIterator接口 与 并发修改异常

    (请关注 本人"Collection集合"博文--<详解 Collection集合>) Iterator接口(迭代器): 概述: 对 collection 进行迭代的迭 ...

  9. 详解 List接口

    本篇博文所讲解的这两个类,都是泛型类(关于泛型,本人在之前的博文中提到过),我们在学习C语言时,对于数据的存储,用的差不多都是数组和链表. 但是,在Java中,链表就相对地失去了它的存在价值,因为Ja ...

随机推荐

  1. 解决 Mac Android Studio Gradle Sync 慢的问题

    1.启动Android Studio 2.从项目的 gradle/wrapper/gradle-wrapper.properties 目录中找到 distributionUrl 这个字段,查看后面对应 ...

  2. python之线程和进程

    进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握.最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂. 1:计算机的核心是CPU,它承担 ...

  3. OpenCV-Python 理解SVM | 五十五

    目标 在这一章中 我们将对SVM有一个直观的了解 理论 线性可分数据 考虑下面的图像,它具有两种数据类型,红色和蓝色.在kNN中,对于测试数据,我们用来测量其与所有训练样本的距离,并以最小的距离作为样 ...

  4. Hbase 整合 Hadoop 的数据迁移

    上篇文章说了 Hbase 的基础架构,都是比较理论的知识,最近我也一直在搞 Hbase 的数据迁移, 今天就来一篇实战型的,把最近一段时间的 Hbase 整合 Hadoop 的基础知识在梳理一遍,毕竟 ...

  5. 微信小程序生成带参数的二维码(小程序码)独家asp.net的服务端c#完整代码

    一)我先用的小程序端的wx.request去调用API,发现竟然是一个坑! wx.request({ url: 'https://api.weixin.qq.com/wxa/getwxacodeunl ...

  6. 关于github报错:ssh: connect to host github.com port 22: Connection timed outfatal: Could not read from remote repository.Please make sure you have the correct access rightsand the repository exists.

    当执行git命令如:git clone.git pull等等 出现报错:ssh: connect to host github.com port 22: Connection timed outfat ...

  7. java类文件结构笔记

    注:新的博客地址 - https://zhengw-tech.com/archives/ 我们都知道java实现跨平台靠的是虚拟机技术,将源文件编译成与操作系统无关的,只有虚拟机能识别并执行的字节码文 ...

  8. ALPN(Application Layer Protocol Negotiation)

    ALPN (Application Layer Protocol Negotiation)是TLS的扩展,允许在安全连接的基础上进行应用层协议的协商.ALPN支持任意应用层协议的协商,目前应用最多是H ...

  9. mac 升级到mavericks 安装php扩展现问题

    mac 升级到mavericks 安装php扩展现以下问题 grep: /usr/include/php/main/php.h: No such file or directory grep: /us ...

  10. 一分钟搞定Java高频面试题

    一分钟搞定Java高频面试题 一.变量赋值和计算 题目: public static void main(String[] args) { int i = 1; i = i++; int j = i+ ...