- 博客(16)
- 收藏
- 关注
转载 HashMap JDK1.8源码分析
HashMap JDK1.8和JDK1.7差异比较大。JDK1.8 HashMap采用数组+链表+红黑树存储值。 一、原理 当链表长度大于或者等于8时,链表转化为红黑树。 二、红黑树简单介绍。 https://www.cnblogs.com/nullllun/p/8214599.html 转载于:https://www.cnblogs.com/laolei1...
2019-09-19 15:22:00
249
转载 手写HashMap
经过HashMap源码分析,我们可以手写一个简单的HashMap 废话不多说,直接上代码 一个简单的HashMap拥有的方法,我把它定义为一个接口 public interface MyMap<K, V> { public V put(K k, V v); //插入 public V get(K k);//获取元素 public int si...
2019-09-17 16:01:00
157
转载 手写LinkedList
java链表底层采用对象存储,优点,插入方便。缺点查询速度慢。 直接上代码。 public class MyLinkedList<E> { private int size; // 链表长度 private Node<E> first; // 头 private Node<E> last; // 尾 public void...
2019-07-23 17:34:00
128
转载 手写ArrayList
写一个自定义ArrayList有利于提升自己对java数据结构的理解。 ArrayList底层使用数组。数组的难点在于在数组中间插入,删除麻烦。优点查询速度快。 直接上代码 一个简单的集合有以下方法,我们使用接口MyList定义方法。 public interface MyList<E> { public boolean add(E e); ...
2019-07-23 17:24:00
108
转载 手写springmvc(基础功能)
一直以来,逃避学习。不喜欢看源代码,不学新技术。呆在一个公司无所事事。面临找工作时,心里很慌,于是从新开始学习源码。从零开始直接开始撸代码。 1、建立一个Maven项目,项目结构如下图所示。 pom.xml 导入 servlet jar包 <dependency> <groupId>javax.se...
2019-07-03 20:40:00
164
转载 win10关闭防火墙
第一种方式 1、点击win+E 打开文件资源管理器。 2、鼠标右键点击网络,打开属性 3、打开windows 防火墙进行关闭 第二种方式 通过命令 1、在win10左下角 输入cmd 2、右键点击命令提示符,通过右键以管理员命令打开 3、输入命令: NetSh Advfirewall set allp...
2019-04-12 11:22:00
980
转载 idea导入maven项目
一次成功 https://www.cnblogs.com/longronglang/p/8179616.html 转载于:https://www.cnblogs.com/laolei11/p/10694633.html
2019-04-12 10:49:00
115
转载 冒泡排序和选择排序(九)
冒泡排序是我学的第一个排序。刚学的时候也没有整明白,但是记住了答案。找工作笔试的时候凭借着记忆力完成了操作。工作了这么久,突然回头看。发现以前觉得很难的东西现在都已经整的差不多了。希望能和你们一起分享自己的进步。 冒泡排序原理:比较二个数的大小,通过交换,大的放后面。 冒泡第一轮会找到该数组中最大的元素。 用马赛克图来说明以下。 假设一个随机的数组。 通过一...
2019-04-02 16:55:00
140
转载 循环双链表(八)
双链表和单链表的区别是多了一个指向上一个节点的指针。 循环双链表插入 1、找到该链表的下一个节点。 2、新插入的节点上一个节点指向该链表,下一个指针指向该链表的下一个节点。 3、该链表下一个节点指向新插入的节点。 所有 public class DoubleNode { int data; DoubleNode next = this; ...
2019-04-02 16:11:00
156
转载 循环单链表(七)
循环单链表和单链表最大的区别是它的某个节点会指向该链表的头节点。通过循环你会发现该链表循环不尽,整个链表形成一个环。 循环链表插入元素 1、找到该链表的下一个节点 2、新元素的下一个节点指向该链表的下一个节点。 3、该链表的下个节点指向新元素。 代码 public class LoopNode { int data; //循环链表初始化 ne...
2019-04-02 16:05:00
113
转载 自定义单链表(六)
链表和数组区别,链表不是顺序存储。每一个节点里面存着下一个节点的指针。 优点:无需实现申明大小,插入方便。 缺点:查询速度比不上数组。 单链表插入节点 1、找到该链表的最后一个节点 2、最后一个节点的指针指向新节点。 3、返回自身。 代码 public class Node { int data; Node next; pub...
2019-04-02 15:41:00
178
转载 汉诺塔问题(五)
汉诺塔我第一次是在c++语言的书籍中看到的,当时看了很久,无法理解。后来索性就再也没有研究过。最近在看数据结构相关视频,又提到了汉诺塔问题。咬着牙琢磨了很久,终于懂了一点皮毛了,希望能和你们一起分享。一起进步。 汉诺塔是一种小游戏,没玩过的朋友可以去4399玩一次。方便体会这种递归思想。 汉诺塔分为三个柱子 A、B、C A上面的阶层数叫做盘子个数。 把A上面的所有的盘子移...
2019-04-02 15:10:00
240
转载 自定义队(四)
队列的特点和栈相反,先进先出,同样用数组实现队列。 队列插入 1、创建一个新的数组,大小比原来的数组长度大一。 2、把原来的数组的值赋值到新数组 3、新数组插入最新元素 4、新数组赋值给原数组 public class MyQuene { int[] elements; public void push(int v...
2019-04-02 14:34:00
110
转载 自定义栈(三)
栈只能在一端进行删除和插入操作,换句话说就是后进后出。最先进来的元素叫做栈底。 可以简单的理解成一桶水,后来的水放在最上面。倒出的时候最上面的水最先倒出去。我用数组实现栈功能。 插入push 1、创建一个新的数组,大小比原来的数组长度大一。 2、把原来的数组的值赋值到新数组 3、新数组插入最新元素 4、新数组赋值给原数组 代码实现 pu...
2019-04-02 14:19:00
155
转载 二分查找和线性查找(二)
二分查找和线性查找可运用于数组 线性查找 时间复杂度 O(n) 1、遍历数组 2、拿目标和数组中的元素进行匹对 3、找到则返回数组中该元素的下标 4、未查询到则返回-1 //自定义数组public class MyArray { int[] elements; // 线性查找 public int search(int target...
2019-04-02 14:05:00
211
转载 自定义数组java(一)
工作算的上是一年了,但是这一年大多数时间都在玩游戏,混日子。大学虽然学过数据结构,但是听的迷迷糊糊。完全没有听懂。以下记录一下学习数据结构的过程,方便自己和他人复习。 数据结构在我理解中就是数据和数据中间的存储关系。数组是一种最常见的数据结构。优点是查询速度很快,但是删除效率很低,要移动各个数组。 数组插入 1、创建一个新的数组,大小比原来的数组长度大一。 ...
2019-04-02 12:12:00
445
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅