声明:本系列blog均为博主学习Java3y的博客,自主整理而得
集合Collection
一、集合介绍
1.1 为什么需要集合
- Java面向对象,需要处理对象
- 为了方便操作多个对象,需要存储多个对象(变量),就需要一个容器
- 常用容器有stringbuffered和数组,但是数组的长度不可变
1.2 数组和集合的区别
- 长度:数组长度固定,集合长度可变
- 数据类型:数组可以存储基本数据类型和引用类型;集合只能存储引用类型(存int会自动装箱成Integer)
1.3 集合的由来与功能
- 集合可存储多个元素,但对多个元素也有不同需求(不能相同,要按照某种规则排序)
二、迭代器(Iterator)介绍
- collection的源码继承了iterable接口,有iterator()方法,返回iterator
- iterator是接口,只有三个方法:hasNext(),next(),remove()
- 在arraylist以内部类方式实现iterator,从源码可以看出实际就是遍历集合
三、List集合介绍
- 特点:有序(存储顺序和取出顺序一致),可重复
- List中有ListIterator接口,可以往前遍历、添加元素、设置元素
3.1 List集合常用子类
- ArrayList–底层数据结构是数组,线程不安全;
- LinkedList–底层数据结构是链表,线程不安全;
- Vector–底层数据结构是数组,线程安全;
四、Set集合介绍
- 特点:元素不可重复
4.1 Set集合常用子类
- HashSet集合–底层数据结构是哈希表
- TreeSet集合–底层数据结构是红黑树(自平衡二叉树),保证元素排序方式
- LinkedHashSet集合–底层数据结构由哈希表和链表组成