![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合及数据结构
文章平均质量分 87
Yuan_o_
愿历经波澜,归来仍是少年。
展开
-
Java——Lambda表达式
Lambda表达式的优点很明显,在代码层次上来说,使代码变得非常的简洁。缺点也很明显,代码不易读。1. 代码简洁,开发迅速2. 方便函数式编程3. 非常容易进行并行计算4. Java 引入 Lambda,改善了集合操作1. 代码可读性变差2. 在非并行计算中,很多计算未必有传统的 for 性能要高3. 不容易进行调试。原创 2024-06-27 10:44:12 · 1224 阅读 · 0 评论 -
Java——枚举
但是常量举例有不好的地方,例如:碰巧有个数字1,编译器可能误解为RED,现在我们可以直接用枚举来进行组织,这样一来,就拥有了类型,而不是普通的整型1优点:将常量组织起来统一管理场景:错误状态码,消息类型,颜色的划分,状态机等等。。。本质:是的子类,也就是说,自己写的枚举类型,就算没有显式继承Enum,但其默认继承了这个类。原创 2024-06-27 09:39:37 · 331 阅读 · 0 评论 -
Java——反射
Java的反射(reflection)机制是在状态中,对于任意一个类,都能够知道这个类的;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到,那么我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射(reflection)机制。原创 2024-06-26 17:26:10 · 622 阅读 · 0 评论 -
泛型——通配符
在泛型中使用,即为通配符。原创 2024-06-26 15:48:13 · 284 阅读 · 0 评论 -
Map和Set
二叉搜索树又称二叉排序树,它可能是一棵空树,也可能是具有以下性质的二叉树性质:若对二叉搜索树进行中序遍历,会得到一个有序数组。原创 2024-06-25 09:05:23 · 900 阅读 · 0 评论 -
数据结构——排序
1. 排序的概念1.1 概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持 不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳 定的;否则称为不稳定的,如下图:tip:稳定的排序方法可以改为不稳定版,但本身不稳定的方法不能改为稳定的内部排序:数据元素全部放在原创 2024-06-23 09:58:39 · 525 阅读 · 0 评论 -
Java中对象的比较
对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equals方法,而==默认情况下调用的就是equals方法,但是该方法的比较规则是:直接比较引用变量的地址。优先级队列底层使用堆,而向堆中插入元素时,为了满足堆的性质,必须要进行元素的比较,而此时Card是没有办法直接进行比较的,因此抛出类型转换异常。对于自定义类型,如果想按照大小的方式进行比较,在定义类时,实现Comparable接口,然后在类中重写compareTo方法。要想在堆中插入自定义类型的元素。原创 2024-06-22 10:09:51 · 444 阅读 · 0 评论 -
数据结构——优先级队列(堆)Priority Queue详解
Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue//运行结果:1// 22. PriorityQueue中放置的元素必须要能够比较大小,不能插入无法比较大小的对象,否则会抛出 ClassCastException 异常。原创 2024-06-22 09:02:14 · 798 阅读 · 0 评论 -
数据结构——二叉树
树是一种非线性的数据结构,由n(n>=0)个有限节点组成一个具有层次关系的集合特点:有一个特殊的节点,称为根节点,根节点没有前驱节点树是递归定义的树形结构中,子树之间不能有交集,否则就不是树形结构除了根节点外,每个节点有且仅有一个父节点一棵个节点的树有条边。原创 2024-06-18 16:55:38 · 1140 阅读 · 3 评论 -
数据结构——队列(Queue)详解
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)的性质入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头(Head/Front)原创 2024-06-14 17:00:23 · 444 阅读 · 0 评论 -
数据结构——栈(Stack)详解
栈:一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中数据元素遵循后进先出LIFO(Last In First Out)的原则压栈:栈的插入操作可以叫做进栈、压栈、入栈,入数据在栈顶出栈:栈的删除操作叫做出栈,出数据在栈顶。原创 2024-06-13 15:33:28 · 1003 阅读 · 0 评论 -
Java——LinkedList
链表在逻辑层面上是连续的,在物理层面上不一定是连续的链表结构可分为,单向或双向、带头或不带头、循环或非循环,组合共计8种重点:无头单向非循环链表、无头双向链表。原创 2024-06-13 14:30:37 · 819 阅读 · 0 评论 -
OJ——环形链表
环形链表是一种特殊类型的链表数据结构,其最后一个节点的地址域不为null,而是指向了链表中的某个节点,形成一段闭环,如下图:tip:该类型题目不能以判断 cur.next 是否为 null 为循环条件,否则死循环给一个链表的头节点head,判断链表中是否有环,如果链表中存在环 ,则返回true。否则,返回false。原创 2024-06-12 17:44:09 · 912 阅读 · 0 评论 -
Java——ArrayList与顺序表
线性表(linear list)是n个具有相同特性的数据元素的有限序列,线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列...线性表在逻辑上是线性结构,也就是连续的一条直线,但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。原创 2024-06-09 15:20:30 · 1039 阅读 · 0 评论 -
JDK17语法新增特性(常用)
yield 关键字从Java13开始引入,用于从case的代码块中返回值示例:正常的switch语句:简化后的switch:使用yield关键字的switch:2、var关键字var 关键字从Java10开始引入,可以自动识别类型上述代码中,编译器会自动判断出name时一个String类型,age是一个int类型使用var可以使代码更简洁,有时候,类型名称可能会非常长,例如泛型中var就像一个简化器,让我们不必反复写出繁琐的类型名,如下:注意事项:密封类一般应用在类和接口中原创 2024-06-06 17:32:26 · 377 阅读 · 0 评论 -
Java——包装类、泛型简介
在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类型。原创 2024-06-06 09:49:29 · 1068 阅读 · 0 评论