一、泛型类、泛型方法、泛型接口
1、泛型概述
泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
泛型的格式:<数据类型>
注意:泛型只能支持引用数据类型。
泛型的好处
1、统一数据类型。
2、把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。泛型的细节
- 泛型中不能写基本数据类型
- 指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
- 如果不写泛型,类型默认是0bject
2、泛型类
3、泛型方法
4、泛型方法的练习
定义一个工具类:ListUtil
类中定义一个静态方法addAll,用来添加多个集合的元素。
5、泛型接口
二、泛型通配符和综合练习
1、泛型的继承和通配符
- 泛型不具备继承性,但是数据具备继承性
2、练习------定义一个继承类
Animal
Cat
波斯猫
狸花猫
Dog
泰迪
哈士奇
text类
3、总结
二、数据结构(二叉树、二叉查找树、平衡二叉树)
1、数据结构(树)
2、数据结构(二叉查找树)
①添加节点规则:
小的存左边;大的存右边,一样的不存
3、数据结构(二叉树)遍历方式
①前序遍历:当前节点,左子节点,右子结点
②中序遍历:左子节点,当前节点,右子结点
③后序遍历:左子节点,右子结点,当前节点
④层序遍历:一层一层的去遍历
4、数据结构(平衡二叉树)
5、数据结构(平衡二叉树)需要旋转的四种情况
①左左:一次右旋
②左右:先局部左旋,再整体右旋
③右右:一次左旋
④右左:先局部右旋,再整体左旋
6、数据结构(平衡二叉树)小结
- 在平衡二叉树中,如何添加节点?
小的在左边,大的在右边,一样的不存
- 在平衡二叉树中,如果查找单个节点?
先跟根节点对比,小的在左,大的在右,依次比较
- 为什么要旋转?
普通二叉树和二叉查找树不需要旋转,到目前为止只有平衡二叉树才需要旋转;
红黑树也需要旋转
旋转的目的:当添加了一个结点之后,导致这棵树不平衡了,那么需要旋转让这棵树重新保持平衡
- 旋转的触发时机?
当成功添加了一个结点之后,破坏了这个平衡,就需要进行旋转
三、数据结构(红黑树、红黑规则、添加节点处理方案详解)
红黑树增删改查的性能都很好
1、数据结构(红黑树)
2、⭐⭐数据结构(红黑树)红黑规则
3、数据结构(红黑树)添加节点的规则
**------**红黑树在 添加节点的时候,添加的节点默认是红色的(效率高)