Java集合框架
2022-01-18 15:51:54 126 举报
AI智能生成
集合框架概述,仅包括常用部分
作者其他创作
大纲/内容
Map
无序,key-value 形式存储对象(key无序不可重复,value无序可重复)
HashTable
实现方式:数组(主体)和链表(解决哈希冲突)
线程安全
查询:不支持随机访问,需要使用key查询
新增和修改:put(K key, V value)
K不存在时,新增数据;K存在时,修改对应的value
可以存储 null 值的key和value,但作为key时只能有一个
K不存在时,新增数据;K存在时,修改对应的value
可以存储 null 值的key和value,但作为key时只能有一个
删除:支持两种删除方法 remove(Object o) 和 clear()
迭代顺序和插入顺序不一致
HashMap
实现方式:数组和红黑树
当链表长度大于8,且当前数组小于64时扩容数组,否则会转换为红黑树
当链表长度大于8,且当前数组小于64时扩容数组,否则会转换为红黑树
线程不安全
查询:不支持随机访问,需要使用key查询
新增和修改:put(K key, V value)
K不存在时,新增数据;K存在时,修改对应的value
可以存储 null 值的key和value,但作为key时只能有一个
K不存在时,新增数据;K存在时,修改对应的value
可以存储 null 值的key和value,但作为key时只能有一个
删除:支持两种删除方法 remove(Object o) 和 clear()
迭代顺序和插入顺序不一致
LinkedHashMap
实现方式:HashMap(存储数据)和双向链表(维持顺序)
线程不安全
查询:不支持随机访问,需要使用key查询
新增和修改:put(K key, V value)
K不存在时,新增数据;K存在时,修改对应的value
K不存在时,新增数据;K存在时,修改对应的value
删除:支持两种删除方法 remove(Object o) 和 clear()
迭代顺序和插入顺序一致
TreeMap
实现方式:红黑树(自平衡的排序二叉树)
线程不安全
查询:不支持随机访问,需要使用key查询
新增和修改:put(K key, V value)
K不存在时,新增数据;K存在时,修改对应的value
可以存储 null 值的key和value,但作为key时只能有一个
K不存在时,新增数据;K存在时,修改对应的value
可以存储 null 值的key和value,但作为key时只能有一个
删除:支持两种删除方法 remove(Object o) 和 clear()
迭代顺序和插入顺序一致,默认按照 key 升序排列,也可使用 compare() 方法指定顺序
Collection
List
有序,元素可重复,可以使用下标操作元素
Arraylist
实现方式:数组
线程不安全
查询:支持随机访问get(int index)
新增:add()
插入和删除:不方便,涉及到数组的移动和复制
空间占用:list列表结尾需要预留空间
LinkedList
实现方式:双向链表
线程安全
查询:不支持随机访问
新增:add()
插入和删除:方便,只需要更改前后节点引用
空间占用:每个元素所占空间较大,需要保存前后节点信息
Set
HashSet
实现方式:HashMap
线程不安全
查询:不支持随机访问,需要使用元素查询
(contains(Object o),返回boolean值)
(contains(Object o),返回boolean值)
新增:add()
修改和删除:不支持修改;
支持两种删除方法(remove(Object o)和clear())
支持两种删除方法(remove(Object o)和clear())
遍历顺序和插入顺序不一致
LinkedHashSet
实现方式:LinkedHashMap
线程不安全
查询:不支持随机访问,需要使用元素查询
(contains(Object o),返回boolean值)
(contains(Object o),返回boolean值)
新增:add()
修改和删除:不支持修改;
支持两种删除方法(remove(Object o)和clear())
支持两种删除方法(remove(Object o)和clear())
遍历顺序和插入顺序一致
TreeSet
实现方式:TreeMap
线程不安全
查询:不支持随机访问,需要使用元素查询
(contains(Object o),返回boolean值)
(contains(Object o),返回boolean值)
新增:add()
修改和删除:不支持修改;
支持两种删除方法(remove(Object o)和clear())
支持两种删除方法(remove(Object o)和clear())
遍历顺序按照插入顺序升序排列
Queue
0 条评论
下一页