这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战
今天继续~
集合框架
集合框架是一个用来代表和操纵集合的统一架构
集合框架要满足几个目标:
- 高性能
- 允许不同类型的集合
- 一个集合的扩展和适应必须也是简单的 所有的集合框架都包含如下内容:
- 接口:是代表集合的抽象数据类型。之所以定义多个接口,是为了以不同的方式操作集合对象
- 实现:是集合接口的具体实现
- 算法:是实现集合接口的对象里的方法执行的一些有用的计算 集合框架提供了一套性能优良,使用方便的接口和类,集合框架位于java.util包,当需要的时候可进行导入操作
集合接口
Collection 接口
- 最基本的集合接口,一个Collection代表一组Object
List 接口
- List接口是一个有序的Collection,此接口能通过索引来访问List中的元素
Set
- Set的接口与Collection完全一样,但是Set不保存重复元素
SortedSet
- 继承与Set,保存有序的集合
Map
- 存储一组键值对
Map.Entry
- 描述Map里的键值对
SortedMap
- 使Map进行升序排列
Enumeration
- 通过它可以枚举对象集合中的元素,这个接口已被迭代器取代
Set和List的区别
- Set存储是无序的,不重复的数据。List是有序的,可以重复的数据
- Set检索效率低,删除和插入效率高。List检索效率高,删除和插入效率低
- List可以动态增长
集合实现类
AbstractCollection
- 实现大部分的集合接口
AbstractList
- 实现了大部分List接口
AbstractSequentialList
- 提供了对数据元素的链式访问
LinkedList(链表)
- 该类实现了List接口
- 查找效率低,删除和插入效率高
ArrayList(动态数组)
- 该类实现了List接口
- 查找效率高,删除和插入效率低
AbstractSet
- 实现了大部分Set接口
HashSet
- 实现了Set接口
LinkedHashSet
- 具有可预知迭代顺序的Set接口的哈希表和链接列表实现
TreeSet
- 实现了Set接口,可以实现排序等功能
AbstractMap
- 实现了大部分Map接口
HashMap
- 是一个散列表,内容是键值对映射
TreeMap
- 使用树结构
WeakHashMap
- 使用弱密钥的哈希表
LinkedHashMap
- 对元素进行排序
IdentityHashMap
- 比较文档时使用引用相等
Vector
- 与ArrayList类似,但可以用在多线程的情况下,允许设置默认的增长长度
Stack
- 实现了一个栈
Dictionary(字典)
- 用来存储键值对
Hashtable
- 是Dictionary的子类,位于java.util包中
Properties
- 是一个持久的属性集,属性中每一个键都对应一个字符串
BitSet
- 它会创建一种特殊类型的数组来保存位值,大小会随需要而增加 ps:List有序,Set无序,Map键值对集合,其余基本都一一对应
今天就到这里,晚安~