详解 Collection集合
(请关注 本人“集合总集篇”博文——《详解 集合框架》)
首先,本人来讲解下 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,以便后续内容的讲解:
- 添加功能:
- boolean add(Object obj):
添加一个元素- boolean addAll(Collection c):
添加一个集合的元素 (给一个集合添加进另一个集合中的所有元素)
- 删除功能:
- void clear():移除所有元素
- boolean remove(Object o):
移除一个元素- boolean removeAll(Collection c):
移除一个集合的元素(移除一个以上返回的就是true) 删除的元素是两个集合的交集元素 如果没有交集元素 ,
则删除失败 返回false
- 判断功能:
- 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():
判断集合是否为空
- 把集合转换为数组:
- Object[] toArray()
- 长度功能:
- int size():元素的个数
- 交集功能:
- boolean retainAll(Collection c):获取两个集合的交集元素(交集:两个集合都有的元素)
- 获取功能:
- Iterator iterator()(重点)
那么,如果我们想要遍历一个集合,按照我们之前的手段,肯定是先把集合转换成一个数组,然后遍历这个数组。
但是,这样一来,在特定的情况下,是很麻烦的
所以Java提供了一个机制来解决这个问题 —— 迭代器:
迭代器:
请关注本人博文——《详解 迭代器 —— Iterator接口、 ListIterator接口 与 并发修改异常》
那么,现在,本人来通过两篇博文来分别讲解下 Collection集合的继承体系中 两个重要子接口 —— List接口 和 Set接口:
List接口:
请关注本人博文《详解 List接口》
Set接口:
请关注本人博文《详解 Set接口》
那么,本篇博文的主要内容就讲解完了,若是对上述知识点或代码有任何疑惑、意见或者建议,请在下方评论区提出,本人将尽早予以答复,觉得有所帮助的同学请留下小赞赞,谢谢!!!
(集合总集篇链接:https://www.cnblogs.com/codderYouzg/p/12416560.html)
详解 Collection集合的更多相关文章
- Java集合排序及java集合类详解--(Collection, List, Set, Map)
1 集合框架 1.1 集合框架概述 1.1.1 容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一 ...
- 详解 Map集合
(请关注 本人"集合总集篇"博文--<详解 集合框架>) 首先,本人来讲解下 Map集合 的特点: Map集合 的特点: 特点: 通过 键 映射到 值的对象 一个 映射 ...
- JAVA集合详解(Collection和Map接口)
原文地址http://blog.csdn.net/lioncode/article/details/8673391 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父 ...
- 详解Map集合体系及方法entrySet、keySet、values
简单回顾Map集合: Map表示映射关系,以键值对的方式来保存数据.key和value一一对应.key是唯一的,不可重复,而value是可重复的,可以被多个key关联.虽然Map是放入两个数据,但是却 ...
- 详解SQL集合运算
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 ...
- Tarjan算法详解理解集合
[功能] Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量.强连通分量是指有向图G里顶点间能互相到达的子图.而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连 ...
- java如何对map进行排序详解(map集合的使用)
今天做统计时需要对X轴的地区按照地区代码(areaCode)进行排序,由于在构建XMLData使用的map来进行数据统计的,所以在统计过程中就需要对map进行排序. 一.简单介绍Map 在讲解Map排 ...
- 详解 迭代器 —— Iterator接口、 ListIterator接口 与 并发修改异常
(请关注 本人"Collection集合"博文--<详解 Collection集合>) Iterator接口(迭代器): 概述: 对 collection 进行迭代的迭 ...
- 详解 List接口
本篇博文所讲解的这两个类,都是泛型类(关于泛型,本人在之前的博文中提到过),我们在学习C语言时,对于数据的存储,用的差不多都是数组和链表. 但是,在Java中,链表就相对地失去了它的存在价值,因为Ja ...
随机推荐
- Java编程思想学习杂记(1-4章)
程序流程控制 移位运算符 移位运算符面向的运算对象是二进制的位,可单独用它们处理整数类型.左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)." ...
- 我们是怎么实现gRPC CodeFirst-生成proto
前言: gRPC默认是ProtoFirst的,即先写 proto文件,再生成代码,需要人工维护proto,生成的代码也不友好,所以出现了gRPC CodeFirst,下面来说说我们是怎么实现gRPC ...
- spring源码阅读笔记06:bean加载之准备创建bean
上文中我们学习了bean加载的整个过程,我们知道从spring容器中获取单例bean时会先从缓存尝试获取,如果缓存中不存在已经加载的单例bean就需要从头开始bean的创建,而bean的创建过程是非常 ...
- 面试刷题29:mysql事务隔离实现原理?
mysql的事务是innodb存储引擎独有的,myisam存储引擎不支持事务. 事务最经典的例子就是转账了,事务要保证的是一组数据库的操作要么全部成功,要么全部失败.是为了保证高并发场景下数据的正确性 ...
- Hadoop 集群的基准测试
集群搭建完毕之后,需要对集群进行基准测试 第一方面:基本测试 服务启动,是否可用,简单的应用 *hdfs 读写操作 bin/hdfs dfs -mkdir - p /user/chris/tmp/co ...
- 学习笔记-EL
仅作为学习过程中笔记作用,若有不正确的地方欢迎指正 目标 理解El的作用,熟练使用EL EL表达式与Jsp表达式对比来记 EL表达式的概念,作用,语法 Jsp作用主要是用来实现动态网页的,而动态网页中 ...
- ASP.NET Core技术研究-探秘Host主机启动过程
当我们将原有ASP.NET 应用程序升级迁移到ASP.NET Core之后,我们发现代码工程中多了两个类Program类和Startup类. 接下来我们详细探秘一下通用主机Host的启动过程. 一.P ...
- 文件输入输出实例&Ptask的编写
前言 最近在写Ptask,顺便了解了如何进行文件读入输出.而在Ptask中最重要,也是最最容易出bug的地方就是文件操作.那么如何进行文件输入输出,在程序中起到重要作用呢? 输入 首先为了保证可以在控 ...
- 批量生成sql语句,难得
在工作我们常常要批量生成sql文件,因为业务部门经常给我们的是excel文件,根据我的经验,推荐两种批量生成sql文件方式 1.excel批量生成sql ,sql语句如下 INSERT INTO Ta ...
- CodeForces 277A 红娘问题(并查子集)
题目链接 思路如下 这题可以普通的并查集来做,我们把每个人认识的红娘,放到一个同一个集合里面,然后通过 for循环 遍历出现过的编号,看总共有几个集合,当集合的个数大于1的时候,需要的话费rmb的数量 ...