自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 HashMap源码解析JDK1.8(二)之put

之前已经有两篇文章介绍了HashMap的基本属性及它的4个构造方法,这篇主要介绍下它的put方法,即数据的存储;首先,我们看下我们平常调用的put方法:public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }这个方法就是我们用的最多的put方法,实际入参就...

2019-11-20 00:24:36 113

原创 算法基础知识图谱整理

下图是个人整理的基础数据结构、排序算法相关的简单图谱,方便后序自己复习;

2019-11-13 00:20:23 495

原创 Java判断单链表环单问题

1、如何判断一个单链表是否存在闭环;2、求闭环长度3、求入环节点代码实现:package com.sort.demo;import com.sort.demo.pojo.Node;/** * 关于单链表闭环问题 */public class NodeCycle { /** * 判断是否存在闭环 * <p> * 思路:两个指针...

2019-11-13 00:11:59 142

原创 Java实现计数排序

计数排序:利用数组下标来确定元素的正确位置;使用范围:使用一定范围内的整数排序代码实现:package com.sort.demo;import java.util.Arrays;/** * 计数排序 */public class CountSortDemo { public static void sort(int[] arr) { int max ...

2019-11-12 23:13:47 124

原创 Java实现堆排序

堆排序基础是最大二叉堆;实现方法:package com.sort.demo;import java.util.Arrays;/** * 堆排序 * <p> * 利用二叉堆堆基础实现 */public class HeapSortDemo { /** * (最大堆)下沉:根节点跟左右节点最大的比较,如果小于最大节点则进行下沉; * ...

2019-11-12 00:01:56 83

原创 Java实现快速排序-双边循环与单边循环

快速排序:在每一轮挑选一个基准元素,并让其它比它大的元素移动到一边,小于等于它的元素移动到另一边;思想:分治法基准元素选择:随机选择与选择第一个等元素交换:双边交换与单边交换一、双边遍历交换实现:import java.util.Arrays;/** * 快速排序 */public class FastSortDemo { /** * 双边循环递归 ...

2019-11-08 00:56:29 542

原创 Java实现鸡尾酒排序

鸡尾酒排序是基于冒泡排序的一种变种,原理与冒泡排序一样,只是鸡尾酒排序是从左到右 然后从右到左这样的顺序来遍历;冒泡排序一直是按从左到右的顺序来执行;代码实现如下:import java.util.Arrays;/** * 鸡尾酒排序:第一次从左到右,第二次从右到左,第三次从左到右,依次进行..... * <p> * 如果存在 2,3,4,5,6,7,1,8 这种顺序,如...

2019-11-07 00:57:50 204

原创 HashMap源码解析JDK1.8(二)之初始化

本章主要讲解HashMap初始化,根据源码,我们可以知道HashMap初始化主要有4个构造方法,接下来就具体来了解下它的4个构造方法:一、无参构造方法 /** * Constructs an empty <tt>HashMap</tt> with the default initial capacity * (16) and the default...

2019-11-06 00:00:13 207

原创 HashMap源码解析JDK1.8(一)

HashMap作为java最常用的类之一,阅读其源码还是有助于理解内部原理,避免使用过程中不必要的错误;首先提出几个问题://TODOpublic class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {从类的继承关系可以看...

2019-11-05 23:06:43 90

原创 Java实现冒泡排序

冒泡排序:如果该元素大于右侧相邻元素,则进行位置交换;否则保持位置不变;实现代码:import java.util.Arrays;public class BubbleSortDemo { /** * 冒泡排序:如果该元素大于右侧相邻元素,则交换,否则不变; * * 优化:如果发现后面几次都没有交换位置,则不用循环比较;所以增加一个标志来判断是否产生...

2019-10-28 21:09:46 239

原创 Java实现最小优先队列Demo

首先,简单了解下优先队列的基础概念,图谱如下:下面是简单利用二叉堆实现最小优先队列的Demo,代码如下:import java.util.Arrays;/** * 最小优先队列 */public class MinPriorityQueue { private int size = 0; private int[] arr; private static f...

2019-10-25 09:24:18 419

原创 Java实现二叉堆构建、上浮、下沉

二叉堆分最小堆、最大堆,是优先队列实现的基础 ,下图是我整理的基本的知识图:对于java实现最小二叉堆的下沉、上浮、构建代码例子如下:import java.util.Arrays;/** * 最小二叉堆构建、上浮、下沉的实现Demo */public class BinaryHeapDemo { /** * (最大堆)上浮:跟父节点比较,如果小于父节点,则进行...

2019-10-24 22:59:43 485

原创 Java实现二叉树的层序遍历

二叉树实现层序遍历利用队列Queue来实现,主要根据先入先出来实现,代码如下:public static void levelOrderTraveral(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while ...

2019-10-24 20:11:33 2595

原创 Java实现二叉树的遍历(递归与非递归)

二叉树的遍历分深度递归与广度递归,深度递归主要分为三种:1. 前序遍历2. 中序遍历3. 后序遍历下面是java实现的三种遍历的方式,包括递归实现与栈方式实现(非递归),参考代码如下:import java.util.Arrays;import java.util.LinkedList;import java.util.Stack;public class BinaryTreeD...

2019-10-24 09:54:20 167

原创 Java调用groovy脚本简单用法

public static void main(String[] args) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("groovy"); try { eng...

2019-10-22 08:48:50 324

原创 LeetCode-无重复字符的最大子串

记录下大致思路,不一定是优解:1、首先初始化开始计算的位置startIdx,上次最大长度lastMaxLength,本次最大长度maxlength2、首先从字符串第一个字符即下标位置位0开始遍历3、判断是否在该下标之前遍历开始下标及之后存在重复的字符,如果出现,则判断maxLength与lastMaxLength大小,如果大于lastMaxLength则把maxLength赋值给lastMa...

2019-10-21 21:04:40 116 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除