集合总结
1.1 什么是集合
集合可以看做是一个对象容器,可以存储很多个对象,管理多个对象及操作比较方便
1.2 集合与数组的区别
长度区别:
数组的长度是固定的而集合的长度是可变的;
存储数据类型的区别:
数组可以存储基本数据类型,也可以存储引用数据类型; 而集合只能存储引用数据类型;
内容区别:
数组只能存储同种数据类型的元素,集合可以存储不同类型的元素;
1.3 集合框架图
1.4 Collection接口
单列数据,定义了存取一组对象的方法的集合
List: 元素有序、可重复的集合
Set: 元素无序、不可重复的集合
Map接口: 双列数据,保存具有映射关系“key-value对”的集合
1.5 单列集合
1.6 双列集合
1.7 List集合子类的特点
ArrayList集合
底层是数组结构实现,查询快、增删慢
LinkedList集合
底层是链表结构实现,查询慢、增删快
1.8 set集合的排序方法
自然排序:
自定义类实现Comparable接口,重写compareTo方法,根据返回值进行排序
比较器排序:
创建TreeSet对象的时候传递Comparator的实现类对象,重写compare方法,根据返回值进行排序
1.9 hashMap集合特点
HashMap底层是哈希表结构的
依赖hashCode方法和equals方法保证键的唯一
如果键要存储的是自定义对象,需要重写hashCode和equals方法
1.10 hashMap集合底层
jdk1.8以前是数组+链表;jdk1.8以后是数组+链表+红黑树
1.11 treeMap集合特点
TreeMap底层是红黑树结构
依赖自然排序或者比较器排序,对键进行排序
如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则