logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

数据结构——链表:一文彻底吃透链表底层原理!

本文介绍了链表数据结构及其实现方法。首先对比ArrayList的缺点引出链表优势,详细讲解了单向链表和双向链表的概念与8种分类。文章重点阐述了单向链表的实现(头插、尾插、指定位置插入、查找和删除操作)和双向链表的实现(增删操作需处理前后指针),并分析了循环链表的判环算法。最后对比了LinkedList与ArrayList的特性差异:LinkedList基于双向链表实现,适合频繁插入删除;Array

文章图片
#数据结构#链表#java
数据结构——优先级队列(PriorityQueue):一文解决 Top K 问题!

文章介绍优先级队列和堆的相关概念及应用。堆是一种完全二叉树,分为大根堆和小根堆。PriorityQueue类及其特性,探讨如何用堆解决Top K问题:找前K个最小元素用大根堆,前K个最大元素用小根堆。最后提供求前K个最小元素的Java代码实现。

文章图片
#数据结构#java
数据结构——二叉搜索树 (Binary Search Tree)

二叉搜索树(BST)是一种具有特定性质的二叉树结构,其左子树节点值均小于根节点,右子树节点值均大于根节点。BST支持三种核心操作:(1)查找 (2)插入(3)删除,其中删除操作是难点,需要重点理解。所有操作的平均时间复杂度为O(logN),在最坏情况下(树退化为单支)时间复杂度为O(N)。BST的中序遍历结果是有序序列。

文章图片
#数据结构#算法#java
数据结构——二叉搜索树 (Binary Search Tree)

二叉搜索树(BST)是一种具有特定性质的二叉树结构,其左子树节点值均小于根节点,右子树节点值均大于根节点。BST支持三种核心操作:(1)查找 (2)插入(3)删除,其中删除操作是难点,需要重点理解。所有操作的平均时间复杂度为O(logN),在最坏情况下(树退化为单支)时间复杂度为O(N)。BST的中序遍历结果是有序序列。

文章图片
#数据结构#算法#java
多线程——wait 和 notify

本文介绍Java多线程中的wait()和notify()方法。两者必须配合同一锁对象使用,且wait()要先于notify()调用。文章还对比了wait()与join()、sleep()的区别,提供生活案例和代码案例分析,以及部分源码解读,适合初学者学习。

文章图片
#java
多线程——线程状态

本文主要介绍Java线程的六种状态及其转换关系:1)NEW(新建未启动);2)RUNNABLE(可运行/执行中);3)BLOCKED(锁阻塞);4)WAITING(无限期等待);5)TIMED_WAITING(限时等待);6)TERMINATED(终止状态)。

文章图片
#java
到底了