目录
一、关联关系
观察下面关系表
list集合和set集合都继承于Collection。
Collection中的常用方法(公共方法)
add()向集合中添加元素
size()获取集合中元素的个数
clear()清空所有元素
contains()判断集合中是否包含某元素,最好重写equals方法
remove()移除集合中的某个元素,重写equals方法
isEmpty()判断集合是否为空,是否存在元素
toArray()把集合转换成数组
二、Map集合
Map集合和Collection集合没有任何关系,以key/value键值对的形式存储元素,存储java对象的内存地址,key不能重复,key存储元素和set集合存储元素一样。
HashMap底层是哈希表数据结构,非线程安全,key和value都能为null
Hashtable带有synchronized关键字,线程安全,效率低,使用较少,key和value都不能为null
properties继承了Hashtable,但key和value只支持string类型
sortedSet中的key部分的元素能自动排序
TreeMap底层是二叉树,能自动按大小排序
三、List集合
有序可重复,存储的元素有下标,按顺序存取
ArrayList非线程安全,数组结构,检索查找效率高,增删效率低,会影响元素移动
Vector 线程安全,数组结构,使用较少
LikedList双向链表,存储地址不连续,增删效率高,检索效率低
集合初始化容量为10,底层是object数组,自动扩容1.5倍
特有的方法:
void add(int index ,E element) 在指定的index下标上添加元素
E get(int index)得到index下标上的元素
E set(int indx,Eelement)修改指定下标上的元素
int indexof(object o)得到元素第一次出现的下标
int lastIndexof(object o)得到元素最后一次出现的下标
E remove(int index)删除下标上的元素
四、Set集合
无序不可重复,存取顺序不一定相同,元素没有下标,元素不能重复,set集合就是map集合的key部分
set集合存储元素特点:
HashSet 底层是一个HashMap集合,是一个哈希表数据结构
TreeSet 底层是一个TreeMap集合,是一个树数据结构
set(map)集合中的常用方法:
v put(k key, v value)向集合中添加键值对
v get(object key) 通过key获取value
void clear() 清空集合
boolean containskey(object key)判断集合中是否包含某个key
boolean containsvalue(object value)判断集合中是否包含某个value
boolean isEmpty()判断集合是否为空
Set<k> keyset()获取集合中所有的key
v remove(object key)通过key移除值,删除的是键值对
int size()获取键值对的个数
collection<v> values()获取集合中所有的value,返回一个collection
set<map.empty<k,y>> entryset()将集合转换成set集合
注意:哈希表是一个数组和单向链表的结合体