![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【JAVA数据结构】
文章平均质量分 96
java数据结构与算法
温欣2030
公众号:数据分析智库。比较少回复。
展开
-
【JAVA数据结构系列】13_ArrayList
小wen加油呀ヾ(◍°∇°◍)ノ゙,不为失败找理由,只为成功找方法。原创 2022-07-31 23:23:32 · 331 阅读 · 0 评论 -
【JAVA数据结构系列】12_泛型
小wen冲冲冲!!!原创 2022-07-31 13:06:10 · 233 阅读 · 0 评论 -
【JAVA数据结构系列】11_集合框架+复杂度
Java集合框架Framework,又被称为容器,是定义在包下的一组接口interfaces和其实现类classes。其主要表现为将多个元素element置于一个单元中,用于对这些元素进行快速、便捷的存储store、检索retrieve管理manipulate,即平时我们俗称的增删查改CRUD。例如,一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。类和接口总览算法(Algorithm)......原创 2022-07-27 17:10:54 · 257 阅读 · 0 评论 -
【JAVA数据结构系列】10_lambda表达式
lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。Lambda表达式中存在变量捕获,了解了变量捕获之后,我们才能更好的理解Lambda表达式的作用域。为了能够让Lambda和Java的集合类集更好的一起使用,集合当中,也新增了部分接口,以便与Lambda表达式对接。总结Lambda表达式的优点很明显,在代码层次上来说,使代码变得非常的简洁。1、有多个参数时,参数的类型可以省略,但是必须同时省略。...原创 2022-07-25 10:20:01 · 218 阅读 · 0 评论 -
【JAVA数据结构系列】09_枚举+反射
Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性,既然能拿到那么,我们就可以修改部分类型信息;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射(reflection)机制。在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量、方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法。枚举是在JDK1.5以后引入的。...原创 2022-07-24 21:20:48 · 880 阅读 · 1 评论 -
【JAVA数据结构系列】08_Hash详解
虽然哈希表一直在和冲突做斗争,但在实际使用过程中,我们认为哈希表的冲突率是不高的,冲突个数是可控的,也就是每个桶中的链表的长度是一个常数,所以,通常意义下,我们认为哈希表的插入/删除/查找时间复杂度是O(1)。比如上面的场景,现在需要插入元素44,先通过哈希函数计算哈希地址,下标为4,因此44理论上应该插在该位置,但是该位置已经放了值为4的元素,即发生哈希冲突。首先,我们需要明确一点,由于我们哈希表底层数组的容量往往是小于实际要存储的关键字的数量的,这就导致一个问题,...原创 2022-07-23 22:31:13 · 786 阅读 · 0 评论 -
【JAVA数据结构系列】07_Set&Map详解
HashMap这个方法的entrySet()方法,这个方法返回返回的是一个Set对象,很多人以为返回的是一个包含了Map里面所有键值对的一个集合对象,这个理解不准确,通过这个Set对象,我们确实可以获取到Map里面存放的所有键值对,但是这个集合对象本身是不存放数据的,它只是助于我们遍历Map中的数据,类似于Iterator。对有n个结点的二叉搜索树,若每个元素查找的概率相等,则二叉搜索树平均查找长度是结点在二叉搜索树的深度的函数,即结点越深,则比较次数越多。弊端线性探测会把尽可能冲突的元素放在一起。....原创 2022-07-22 23:49:35 · 437 阅读 · 0 评论 -
【JAVA数据结构系列】06_排序详解
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。希尔排序法的基本思想是先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。先把45前面的都调整为有序,然后45是i,45之前的元素是j,然后进行比较。.........原创 2022-07-20 00:13:04 · 168 阅读 · 0 评论 -
【JAVA数据结构系列】05_java对象的比较
因为对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而==默认情况下调用的就是equal方法,但是该方法的比较规则是没有比较引用变量引用对象的内容,而是直接比较引用变量的地址,但有些情况下该种比较就不符合题意。优先级队列底层使用堆,而向堆中插入元素时,为了满足堆的性质,必须要进行元素的比较,而此时Card是没有办法直接进行比较的,因此抛出异常。从编译结果可以看出,Java中引用类型的变量不能直接按照>或者.........原创 2022-07-16 20:42:08 · 273 阅读 · 1 评论 -
【JAVA数据结构系列】04_堆详解
我喜欢三月的风,四月的雨,不落的太阳,和最好的你。一篇java数据结构的堆详解送给亲爱的你。原创 2022-07-16 19:39:01 · 551 阅读 · 0 评论 -
【JAVA数据结构系列】03_树与二叉树详解
树是一种非线性的数据结构,它是由n ( n>=0)个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:–以下了解即可–树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,实际中树有很多种表示方式,如: 双亲表示法,孩子表示法、孩子双亲表示法、孩子兄弟表示法等等。我们这里就简单的了解其中最常用的孩子兄弟表示法。文件系统管理(目录和文件)一棵二叉树是结点的一个有限集合,该集合:从上图可以看出:证明度为0的节点比度为原创 2022-07-14 08:47:53 · 276 阅读 · 0 评论 -
【JAVA数据结构系列】02_队列详解
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 。入队列:进行插入操作的一端称为队尾(Tail/Rear) 。出队列:进行删除操作的一端称为队头( Head/Front)。在Java中, Queue是个接口,底层是通过链表实现的。2、双端队列双端队列(deque):是指允许两端都可以进行入队和出队操作的队列, deque 是 的简称。 那就说明元素可以从队头出队和入队,也可以从队尾出队和入队。Deque是一原创 2022-07-10 21:42:59 · 352 阅读 · 0 评论 -
【JAVA数据结构系列】01_栈详解
2、模拟实现一个栈从上图中可以看到, Stack继承了Vector ,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安 全的。扩容的源码中的意思:【3】、压栈1、压栈之前要判断栈是否满了2、要设置一个栈的初始大小,才能比较栈是否满了3、栈满了,就要进行二倍扩容,使用【4】、出栈如果元素是引用数据类型的出栈,则思路为:但由于我们定义的数组的元素是int类型,因此思路为:直接让,这样新的数据添加进来就会覆盖应该被删除的数据。重新new一个原创 2022-07-07 09:47:16 · 901 阅读 · 0 评论