4.1 Set集合的特点【背下来】
1).Set集合的特点:
1).无序的;
2).不能存储重复元素。
3).不能通过索引访问。
2).Set集合新增的方法:(无)
4.2 Set集合_HashSet存储字符串【重点:观察特点:无序;不存储重复元素】
4.3 Set集合_HashSet存储自定义对象【重点:需要自定义对象重写hashCode()和equals()】
4.4 Set集合_哈希表结构【了解】
JDK8以前:哈希表= 数组+ 链表
JDK8开始:哈希表= 数组+ 链表(长度超过8) + 红黑树
4.5 Set集合_LinkedHashSet的特点及使用【了解】
1).LinkedHashSet:链表 + 哈希表。它是Set的特例:有序的集合
链表:保证顺序
哈希表:保证唯一
2).特点:有序、不存储重复元素。
4.6 Set集合_TreeSet的特点及使用【了解】
1).TreeSet:红黑树结构(平衡二叉树)
2).示例:
4.7 Set集合_TreeSet集合-树结构
1).树 —> 二叉树—>平衡二叉树(红黑树),查询元素:非常快。
【注意】每次存储一个Node,是不是要先比较,怎么比较?
总结:
1)能够说出集合与数组的区别
数组:长度固定
集合:长度是可变,没有长度限制
2)能够使用Collection集合的常用功能
1).增:
1).public boolean add(E e):向集合中添加一个元素e。【基础班学过】
返回值:添加成功返回true,否则返回false。
对于List集合:永远返回true
对于Set集合:如果“存储重复元素”,会导致存储失败,会返回false。
2).删:
2). public void clear():清空集合中所有的元素
3). public boolean remove(E e):删除参数对象。【基础班学过】
注意:如果集合中有多个相同的元素,只删掉第一个。
返回值:删除成功返回true,如果没有删除,返回false。
了解:remove方法底层是使用“equals”方法来比较对象的,如果equals()为true,就认为找到对象,然后删除。
3).改:(无)
4).查:
4). public boolean contains(Object obj):判断参数对象在当前集合中是否存在
了解:底层也是使用的“equals”方法来比较的。
5). public boolean isEmpty():判断集合是否为空(没有元素,但集合对象还是存在的,不等同于null)
6). public int size():获取集合大小。【基础班学过】
7). public Object[] toArray():将集合转换为数组。
8). public Iterator
3)能够使用迭代器对集合进行遍历
4)能够使用增强for循环遍历集合和数组
5)能够说出常见的数据结构
数组、链表
栈、队列、哈希表、红黑树
6)能够说出数组结构特点
增删慢;查询快
7)能够说出栈结构特点
先进后出
8)能够说出队列结构特点
先进先出
9)能够说出单向链表结构特点
增删快;查询慢
10)能够说出List集合特点
1.有序的
2.可以存储重复元素
3.可以通过索引访问
11)能够说出Set集合的特点
1.无序的
2.不能存储重复元素
3.不能通过索引访问
12)能够说出哈希表的特点
不存储重复元素,怎么验证重复:hashCode()—>equals()
13)能够使用HashSet集合存储自定义元素
要求自定义对象要重写hashCode()和equals()