
数据结构
文章平均质量分 88
X_H学Java
月亮本无光 努力久了便会万丈光芒
展开
-
Java中的反射技术
一个类的私有属性和方法是不允许被外部访问的,但是可以通过反射技术访问到某个类的私有属性和方法,本文通过举例对Java中反射的用法做出了详细的说明原创 2022-07-18 20:45:48 · 522 阅读 · 16 评论 -
Java如何比较两个对象的大小?如何往优先级队列中插入自定义类型
本文介绍了Java中基本类型和引用类型比较大小的方式,重点介绍了Comparable接口和Comparator接口的用法,以及如何往优先级队列中插入自定义类型的对象原创 2022-07-11 23:57:04 · 529 阅读 · 8 评论 -
(Java)数据结构---优先级队列(PriorityQueue)
本文对优先级队列进行详细介绍,从常用方法的使用,到底层使用堆的实现,并且对堆这一数据结构也展开详细介绍,如堆的创建,删除,插入等操作,最后介绍了堆的一些常见的应用场景比如Top-k,堆排序......原创 2022-07-11 15:01:17 · 2662 阅读 · 11 评论 -
数据结构---循环队列与循环双端队列的实现(Java实现)
本文实现了循环队列,并分析了实现循环队列时需要考虑的问题,还实现了循环双端队列原创 2022-06-15 15:23:27 · 906 阅读 · 14 评论 -
LinkedList的模拟实现(Java实现)
LinkedList是数据结构中非常重要的内容,面试中经常靠算法题,本文对LinkedList进行模拟实现,加深对LinkedList的底层双向链表的熟悉原创 2022-06-13 21:43:56 · 482 阅读 · 17 评论 -
数据结构---ArrayList(Java实现)
线性表是数据结构很重要的知识,本文对ArrayList进行全方面剖析,举例介绍基本方法的使用,解析底层扩容机制,并对其进行模拟实现原创 2022-06-11 10:30:29 · 3803 阅读 · 14 评论 -
【数据结构】什么是泛型?为什么要使用泛型?泛型怎么用?那包装类呢?
泛型和包装类都是在学数据之前必须要掌握的知识,本文从为什么需要泛型和包装类分别引入,举了丰富例子说明了需要泛型和包装类的必要性和如何使用泛型和包装类原创 2022-06-09 22:31:33 · 531 阅读 · 13 评论 -
【数据结构】算法的时间复杂度和空间复杂度解析
本文对时间复杂度,空间复杂度进行了介绍,并举例对常见算法的时间复杂度和空间复杂度进行了分析,掌握了时间复杂度和空间复杂度,便于分析算法,写出效率高的代码原创 2022-06-08 16:08:53 · 1605 阅读 · 12 评论 -
(Java)笔记篇---HashMap底层原理解析及HashMap常考面试题
HashMap底层原理分析,对初始容量,哈希函数,常用方法,扩容方式等进行解析HashMap常考面试题为什么重写hashcode与equals方法原创 2021-12-26 19:23:49 · 966 阅读 · 1 评论 -
基本排序算法总结(Java实现)
插入排序,希尔排序,选择排序,堆排序,冒泡排序快速排序,三种分割方式:Hoare,挖坑法,前后标记法归并排序计数排序(非比较类型的排序)对这八种排序的实现过程以及时间复杂度,空间复杂度,稳定性,应用场景的分析原创 2021-12-22 21:27:40 · 1519 阅读 · 2 评论 -
(Java)数据结构之哈希表(散列表)与哈希冲突
哈希表,散列表,哈希冲突的产生及解决方式开散列:线性探测,二次探测哈希的负载因子闭散列哈希桶的实现原创 2021-12-09 22:34:02 · 1026 阅读 · 1 评论 -
(Java)二叉树的三种遍历(非递归实现)
二叉树的三种非递归遍历非递归前序遍历非递归中序遍历非递归后续遍历原创 2021-11-22 21:06:29 · 1424 阅读 · 1 评论 -
(Java)数据结构之树与二叉树(二叉树的四种遍历,获取结点个数,获取叶子结点个数,获取高度,获取第k层结点个数,查找值为val的结点,判断一棵树是否为完全二叉树(详述,图文并茂)
二叉树的四种遍历获取结点个数获取叶子结点个数获取高度获取第k层结点个数查找值为val的结点判断一棵树是否为完全二叉树原创 2021-11-19 21:28:21 · 1429 阅读 · 0 评论 -
(Java)数据结构之队列(Queue),含有三个OJ题(用队列实现栈,用栈实现队列,实现一个最小栈)
1. 队列的概念队列只允许在一端进行插入操作,在另一端进行删除操作的特殊线性表,队列具有先进先出(FIFO)的特性,进行插入操作的一端为队尾,进行删除操作的一端为队头。2. 队列的使用 在Java中,Queue是一个接口,底层是通过链表来实现的方法 功能说明 boolean offer(E e) 入队列 E poll() 出队列 E peek() 获取对头元素 int size() 获取队列中有效元素的个数 boolean is...原创 2021-11-14 19:39:30 · 1356 阅读 · 7 评论 -
Java---ArrayList实现扑克牌的洗牌与抓牌程序
目录一.介绍二.定义一张牌三. 程序主体3.1 定义一副新牌3.2 定义洗牌方法3.3 定义三个人和揭牌过程四. 输出每个人揭到的牌五.全部代码展示和输出结果展示一.介绍一副扑克牌去掉大小王还剩52张牌,三个人玩儿,也就是一个人能拿到13张牌,一副新牌是按照顺序进行排列好的,要想玩就必须先洗牌,就是将牌的初始顺序打乱然后每个人一次拿一张牌,直到每人拿到13牌。这个程序的内容主要运用了ArrayList,如果有哪些ArrarList中的方法不懂,可以...原创 2021-10-15 14:41:12 · 536 阅读 · 2 评论 -
(Java)数据结构之栈(Stack) ,附有三个栈相关OJ题目和对应做法(括号匹配,逆波兰表达式求值,出栈入栈次序匹配)
1. 栈的概念栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,进行数据插入和删除的一端为栈顶,另一端为栈底。栈中的元素遵循后进先出(LIFO)(Last In First Out)的原则。压栈:栈的插入数据操作叫做进栈,压栈,入栈。入数据在栈顶出栈:栈的删除操作叫做出栈。出数据在栈顶2. 栈的使用方法 功能说明 Stack() 构造一个空栈 E push(E e) 将e入栈并返回e E pop() 将栈顶元素出栈并返回 E peek原创 2021-11-11 11:54:33 · 1308 阅读 · 0 评论 -
LeetCode206---反转链表(Java实现,有图解)
题目:给你单链表的头节点 head,请你反转链表,并返回反转后的链表。OJ链接示例:输入:[ 1 , 2 , 3 , 4 ]输出:[ 4 , 3 , 2 , 1 ]分析:该链表是单链表,反转后的链表的每个结点都指向前一个结点,即第一个指向空,最后一个指向倒数第二个。整个过程大致可以概括为:断开当前结点指向,让该结点指向前一个结点,以此类推到最后一个节点。此题将采用三指针法,画图进行说明:代码实现:public class ListNode { Li...原创 2021-11-06 20:53:01 · 278 阅读 · 0 评论