集合
Conlection,用来存放对象的数据结构,长度时可变的,可以存放不同的数据类型,Conlection提供了父接口需要实现 List接口和set接口
分为List接口,set接口和HashMap接口
集合的继承结构
Collection接口
1.List 接口【数据有下标,有序,可重复】
ArrayList子类
LinkedList子类
2.Set 接口【数据无下标,无序,不可重复】
HashSet子类
3.Map 接口【键值对的方式存数据】
HashMap子类
List集合:
有序的集合,根据下标来控制数据
特点:每个元素都有下标,有序,可以存放重复的数据
ArrayList集合:
内部是用数组结构存放数据,封装数组的操作,每个对象都有下标
内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
查询快,增删数据效率会低
特点:底层是数组,查询快,修改慢,会改变整个数组结构,适合查询的场景
LinkedList集合:
链表,两端效率高,底层就是链表实现的
特点:底层是链表,查询慢,修改快,适合修改的场景。数据量大时,之间查询也慢,首尾快
Map集合:
Key对应Value 以键值对的形式来存放值的
特点:
Map可以根据键来提取对应的值
Map的键Key不允许重复,如果重复,对应的值会被覆盖
Map存放的都是无序的数据
Map的初始容量是16,默认的加载因子是0.75
set接口
Set是一个不包含重复数据的Collection
Set集合中的数据是无序的(因为Set集合没有下标)
Set集合中的元素不可以重复 – 常用来给数据去重
Set集合的特点
数据无序且数据不允许重复
HashSet : 底层是哈希表,包装了HashMap,相当于向HashSet中存入数据时,会把数据作为K,存入内部的HashMap中。当然K仍然不许重复。
TreeSet : 底层是TreeMap,也是红黑树的形式,便于查找数据