集合
一、概念
含义:一组数据的容器,跟数组类似
二、特点
- 集合是Java API所提供的一系列类,可以用于动态存放多个对象。–集合只能存对象
- 集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。(集合中不能放基本数据类型,但可以放基本数据类型的包装类)
- 集合类全部支持泛型,是一种数据安全的用法。
三、集合 vs 数组
数组:一旦初始化,长度不可变;可以存放基本数据类型;元素类型必须和数组声明时的类型兼容
集合:长度可变的序列;只能存放引用数据类型;元素类型不受限定
四、集合家族
Collection家族 – 接口
提供了基本的增删改查的功能
List家族 – 接口
特点:有序的,且可重复的(添加了很多针对下标操作的方法)
实现类:
- ArrayList
数据结构:一维数组
- LinkedList
数据结构:双向链表
- Vector
数据结构:一维数组
- Stack (extends Vector)
数据结构:一维数组
Set家族 – 接口
特点:无序的,且不可重复的
实现类:
- HashSet
数据结构:hash数组
- LinkedHashSet (extends HashSet)
数据结构:hash数组
- TreeSet
数据结构:二叉树
Map家族 – 接口
特点:键值对存储
实现类:
1. HashMap 2. LinkedHashMap 3. Hashtable 4. ConcurrentHashMap 5. TreeMap 6. Properties
五、迭代器
分类:Iterator、ListIterator
理解:迭代器中使用集合删除元素会报错的原因(modCount != expectedModCount)
Iterator vs ListIterator
Iterator :遍历集合、删除元素
ListIterator:只能List接口下的实现类调用,遍历集合、删除元素、添加元素、替换元素、指定下标开始遍历元素、倒叙遍历