![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
monk0271_chen
这个作者很懒,什么都没留下…
展开
-
手写HashMap中的红黑树
文章目录前言一、红黑树是什么?二、代码实现1.构建存放键值对的节点类2.构建树节点类3. 插入方法4.红黑树平衡5.左旋、右旋和交换颜色8.测试验证总结 前言 java8的HashMap中,使用了红黑树,本文主要是通过手写红黑树插入和查找代码来理解其特性和作用。 一、红黑树是什么? 红黑树是一种数据结构,如果学过数据结构的同学,应该会比较了解,红黑树是一种平衡二叉树,是有234树转变而来。没学过的同学,只需要知道以下两点: 作用:有序且规则的结构,在HashMap中主要是方便查找元素 消耗:插入和删除原创 2021-12-25 18:36:29 · 925 阅读 · 0 评论 -
匿名内部类成员变量初始化导致 java.lang.StackOverflowError
项目场景: java某抽象类A中需要匿名初始化一个同类型的成员变量, public class Main { public static void main(String[] args) { new B(); } } abstract class A { A a = new A() {//同类型成员变量 @Override void do_sth() { System.out.println("do nothing"); } };原创 2021-10-23 12:56:16 · 164 阅读 · 0 评论 -
利用java的多态性,优雅的避免NullPointerException!
文章目录场景一、什么是多态?二、直接上代码总结 场景 我们经常会碰到以下场景: 有A,B两个自定义类,A类对象有个selectB()方法,返回B对象,可能为空,于是每次在引用该对象时,都可能需要做空判断 if(b != null) //执行某段代码 else //执行对象为空时的特殊操作 这看起来有点烦人!有什么优雅的解决方案吗? 有的,用最基本的多态就可以解决。 提示:如果你比较了解java多态性,建议直接看代码 一、什么是多态? 这里我们直接参考高分简洁回答: 二、直接上代码 将B类定义为inte原创 2021-10-19 20:00:39 · 127 阅读 · 0 评论