Day16
一、Set接口:TreeSet类和HashSet类实现Set接口。
1、TreeSet类
构造方法:
(1)TreeSet():构造一个新的空 set,该 set 根据其元素的自然顺序进行排序。
(2)TreeSet(Collection<? extends E> c):构造一个包含指定 collection 元素的新 TreeSet,它按照其元素的自然顺序进行排序。
方法:
(1)add(E e):将指定的元素添加到此 set(如果该元素尚未存在于 set 中)。
(2)addall(Collection<? extends E> c):将指定 collection 中的所有元素添加到此 set 中。
(3)clear():移除此 set 中的所有元素。
(4)contains(Object o):如果此 set 包含指定的元素,则返回 true。
(5)first():返回此 set 中当前第一个(最低)元素。
(6)isEmpty():如果此 set 不包含任何元素,则返回 true。
(7)last():返回此 set 中当前最后一个(最高)元素。
(8)pollFirst():获取并移除第一个(最低)元素;如果此 set 为空,则返回 null。
(9)pollLast():获取并移除最后一个(最高)元素;如果此 set 为空,则返回 null。
(10)remove(Object o):将指定的元素从 set 中移除(如果该元素存在于此 set 中)。
(11)size():返回 set 中的元素数(set 的容量)。
注意:输出时默认为中序遍历。
2、HashSet类
构造方法:
(1)HashSet():构造一个新的空 set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75。
(2)HashSet(Collection<? extends E> c):构造一个包含指定 collection 中的元素的新 set。
方法:
(1)add(E e):如果此 set 中尚未包含指定元素,则添加指定元素。(2)clear():从此 set 中移除所有元素。
(3)contains(Object o):如果此 set 包含指定元素,则返回 true。
(4)isEmpty():如果此 set 不包含任何元素,则返回 true。
(5)remove(Object o):如果指定元素存在于此 set 中,则将其移除(6)size():返回此 set 中的元素的数量(set 的容量)。
3、迭代。
二、set与List的区别。
1、list有序 , set无序
2、list可重复 , set不可重复
3、list可以有null值 , set不允许有null值
二、关于树的基本概念
1、树:如下图为一棵树
根:A为根,没有父节点的节点为根。
树叶:有父节点,没有子节点的节点为树叶。例如B.C.H.I.P.Q.K.L.M.N
兄弟:有同一个父节点的节点。例如K和L和M,P和Q。
祖父:如图E为P的祖父。
孙子:如图P为E的孙子。
路径:从一个节点X1到另一个节点X9的路径表示节点X1.X2…X9的序列
长:此路径上边的长度
深度:X1的长度为从X1到根节点的长度
高:从Xn到根节点的最长路径的长。
祖先
后裔
真祖先
真后裔
二叉树:特点:每个节点最多有两个孩子节点(左孩子 右孩子)。
二叉查找树:为特殊的二叉树。
特点:左孩子的值<根节点的值<右节点的值
AVL树(平衡树):为特殊的二叉查找树。
特点:根节点左右两边的高差值<=1.
将普通树变成二叉树的方法:
单旋
双旋
红黑树:特殊的AVL树,将AVL的树填充上红黑色。
2、树的遍历方式:
(1)先序遍历:遍历顺序为根左右
(2)中序遍历:遍历顺序为左根右
(3)后序遍历:遍历顺序为左右根
Day16
最新推荐文章于 2022-03-14 09:21:39 发布