1. 什么是集合
- 集合就是一个放数据的容器,准确的说是放数据对象引用的容器
- 集合类存放的都是对象的引用,而不是对象的本身
- 集合类型主要有3种:set(集)、list(列表)和map(映射)。
2. 集合的特点
- 集合用于存储对象的容器,对象是用来封装数据,对象多了也需要存储集中式管理。
- 和数组对比对象的大小不确定。因为集合是可变长度的。数组需要提前定义大小
3. 集合和数组的区别
- 数组是固定长度的;集合可变长度的。
- 数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。
- 数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。
4.List,Set,Map三者的区别
5、遍历集合方法
1、加强for循环:
for(集合/数组的数据类型 变量名:集合/数组名){
sout(变量名);
}
2、 Iterator遍历:
- 使用集合中的方法iterator()获取迭代器实现类对象,使用Iterator接收
-
使用Iterator接口中的方法hasNext()判断还有没有下一个元素
-
使用Iterator接口中的方法next()取出集合中的下一个元素
ArrayList和LinkedList:
ArrayList:底层是数组结构,查询快,增删慢
LinkedList:底层链表结构(双向链表),增删块,查询慢,里面包含了大量的首尾方法
java.util.HashSet实现Set接口
HashSet的特点:
不允许存储重复元素
没有索引
是一个无需集合,存储和取出顺序有可能不一致
底层是一个哈希表结构:查询速度相当快
哈希表=数组+链表
哈希表=数组+链表/红黑树
使用Set接口存储自定义类的时候,需要重写equals()和hashCode()来满足不能存储重复元素的特点
java.util.LinkedHashSet实现Set接口
不允许存储重复元素
没有索引
有序集合
底层是一个哈希表+链表保证元素有序