Java集合【6.1】-- Collection接口源码详解
2024-10-16 17:14:09
目录
一、Collection接口简介
collection
在java集合中,算是顶级接口,它继承了iterable
接口,不能实例化,只能实例化其子类。之所以需要这样一个接口,是因为java作为面向对象,总是避免不了处理多个对象的情况,要处理多个对象,首先需要容器存储,这个容器就是集合。为什么有了数组,还需要集合,因为数组的功能单一,长度不可变,而有些集合实现类则是对数组操作的封装。
Collection
集合和数组的区别:
- 集合长度可以变,数组是定长的
- 集合存储的元素只能是引用类型,而数组则可以是基本类型
- 数组只能执行基本操作,而集合功能经过拓展,更加丰富。
graph TD;
Collection -->List-有顺序,可重复
List-有顺序,可重复 -->LinkedList-使用链表实现,线程不安全
List-有顺序,可重复 -->ArrayList-数组实现,线程不安全
List-有顺序,可重复 -->Vector-数组实现,线程安全
Vector-数组实现,线程安全 -->Stack-堆栈,先进后出
Collection -->List-有顺序,可重复
List-有顺序,可重复 -->LinkedList-使用链表实现,线程不安全
List-有顺序,可重复 -->ArrayList-数组实现,线程不安全
List-有顺序,可重复 -->Vector-数组实现,线程安全
Vector-数组实现,线程安全 -->Stack-堆栈,先进后出
Collection-->Set-不可重复,内部排序
Set-不可重复,内部排序-->HashSet-hash表存储
HashSet-hash表存储-->LinkHashSet-链表维护插入顺序
Set-不可重复,内部排序-->TreeSet-二叉树实现,排序
Collection-->Queue-队列,先进先出
二、Collection源码分析
Collection
继承于Iterable
接口,而Iterable
接口,是集合的顶级接口,没有之一,Iterable
接口定义的功能是可以迭代,也就是获取迭代器iterator
的功能,因此Collection
以及其实现类也间接获得迭代的功能。
为什么需要这样子定义呢?我陷入了深深地思考...
最新文章
- react-native DatePicker日期选择组件的实现
- vim快捷键
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- SCOI 2013 密码 &; 乱搞
- Linux C学习笔记06--Tlist使用(编程工具篇)
- 100+诡异的数据集,20万Eclipse Bug、死囚遗言等
- JOptionPanel类的解析
- Apache OpenOffice 与 LibreOffice 之间的抉择
- finalize过程
- DOS批处理延时技术
- Oracle用脚本语言导入SCOTT用户
- POJ 1251 Jungle Roads (最小生成树)
- STL优先队列
- 列表的pop()和路径拼接问题
- go get 的使用
- FFMPEG转换WAV到MP3
- android免root hook框架legend
- redis基本使用
- mysql创建的数据库在电脑什么位置?
- HashMap实现原理(转)
热门文章
- 【转】Setting up SDL 2 on Visual Studio 2019 Community
- Windows Server 2019 在桌面图标
- python爬虫使用scrapy框架
- [Luogu P2831] 愤怒的小鸟 (状压DP)
- 848.Shifting Letters——weekly contest 87
- 转载-Java匿名内部类
- linux + MongoDB 安装 + 部署 + 讲解 (满满干货看完记得收藏噢)
- 关于ubuntu出现的一些问题的解决方法
- 日志切分神器--logrotate
- 1redis介绍