1、集合分类:
单列集合:每个元素都是一个单独的个体
双列集合:每个操作都是针对一对数据来进行的,一对数据作为
一个单位
2、单列集合的体系:
Collection 单列集合的顶层接口
List 有序的子接口
ArrayList 顺序存储,查询修改块
LinkedList 链式存储,增加删除块
Vector 顺序存储,都慢
Set 无序的子接口
HashSet 哈希存储
LinkedHashSet
3、双列结合的体系:
Map 双列集合的顶层接口
HashMap 哈希表存储
LinkedHashMap
Collection
1、单词:收集、集合
2、单列集合的顶层接口,定义的是所有单列集合中共有的功能。
3、Collection是一个接口,不能直接创建对象,随意找一个实现类
创建对象
使用接口类型的引用,指向实现类的对象
Collection类型的引用,指向 ArrayList类型的对象(只能调
用接口中的方法)
4、常用方法:
add(Object obj):将obj元素添加到集合中
remove(Object obj):将obj元素从集合中删除
clear():将集合中的元素清空
isEmpty():判断集合是否为空
contains(Object obj):判断集合中是否包含obj元素
size():返回集合中的元素个数
遍历:foreach 迭代
list
1、是Collection的一个子接口
2、特点:
有序:每个元素都有自己的位置,不同位置是有分别的
【有索引】:每个元素都有自己的编号
可以重复:即使是值相同的几个元素,位置和索引也各不相同,
可以区分这几个值。
3、特有方法:
add(int index, Object obj):在指定索引上,添加指定元素
remove(int index):删除指定索引上的值
set(int index, Object obj):将指定索引上的值,
修改为指定的值
get(int index):根据给定的索引,获取对应位置的值
LinkedList
1、List的一个实现类
2、存储方式:
节点实现,链式存储
不通过物理内存位置的相邻,来表示逻辑顺序的相邻
每个元素都存储在一个节点中,节点除了元素数据本身以外,还
需要存储下一个元素的内存地址
3、特点:
查询速度慢:需要根据前面的节点来获取后一个节点的地址,前
面所有节点都要访问一遍,节点数量越多,查询虚度越慢
增删速度快:增删一个元素,只需要修改新增元素前后的两个
节点的引用域即可,与集合本身的元素个数无关。
4、LinkedList的特有方法:
由于在LinkedList中,维护了链表的头和尾节点的对象地址,
所以操作头部和尾部非常容易,提供了大量的操作头和尾的方法。
addFirst(Object obj):在头部添加元素
addLast(Object obj):在尾部添加元素
removeFirst():删除头部元素
removeLast():删除尾部元素
getFirst():获取头部元素
getLast():获取尾部元素