集合
一、集合概念
对象的容器,实现了对象的常用的操作,类似数组功能
二、集合和数组的区别
(1)数组长度固定,集合长度不固定
(2)数组可以存储基本类型和引用类型,而集合只能存储引用类型
集合分为Colletion集合以及Map集合。
Colletion集合下定义了两个子接口LIst和Set
List
特点:
(1)有序的,有下标的
(2)元素可以重复
接口下有三个实现类。
(1)LinkedList //以链表实现的类,增删快,查询慢。
(2)ArrayList //以数组实现的类,查询快,增删慢
两者都是线程不安全的。
(3)Vector //线程安全的,但是运行效率慢
Set:
特点:
(1)无序的,无下标
(2)元素不可以重复
接口下有两个实现类
(1)HashSet //存储结构:数组+链表+红黑树(这个是jdk1.8才有的新特性)
(2)TreeSet //存储结构:红黑树
Map集合下定义了HashMap 和 TreeMap两个实现类
(1)HashMap集合的使用
- 存储结构:哈希表(数组+链表+红黑树)
- 使用key的hashcode和equals作为重复依据
(2)TreeMap集合的使用
- 存储结构:红黑树
- 使用key的hashcode和equals作为重复依据
- 因为存储结构是红黑树,所以会对元素进行排序,需要实现Comparable接口。