新手学习java语言
敲不响的键盘
这个作者很懒,什么都没留下…
展开
-
实现自己的HashMap
通过实现自己的HashMap彻底了解HashMap的底层原理JDK1.8 HashMap通过数组、链表、红黑树结构实现了解它的动态扩容、hash算法、存入元素、取出元素的过程代码简单实现(省去树化,rehash):public interface IMap<K,V> { void put(K k, V v); V get(Object k); ...原创 2020-03-18 22:17:33 · 129 阅读 · 0 评论 -
简单理解ArrayList源码
Java集合框架中ArrayList1.ArrayList是动态扩容的,每次扩容为原来长度的1.5倍,并且采用的是懒加载策略,当第一次调用add方法时,数组才会扩容为10(默认值)2.模拟实现List接口:public interface List<E> { int size(); void add(E e); E get(int index)...原创 2020-03-16 16:38:51 · 166 阅读 · 0 评论 -
闭着眼睛写出三路快排(java)
闭着眼睛写出三路快排(java)思路:快速排序的核心通过基准值进行比较,小于基准值v的放在左边,大于的放在右边,从而得出基准值的正确位置。因此,将一段数组(下标范围:[l,r])选出基准值v后(这里默认基准值为第一个元素)用i遍历,分成四个部分,小于它的[l, lt],等于它的[lt+1, i -1],还未遍历到的[i, rt-1],大于它的[rt,r]:如下所示[l,…lt],[lt+1...原创 2020-02-25 01:56:24 · 211 阅读 · 0 评论 -
二叉树之深度优先遍历与广度优先遍历
通过二叉树的前序和中序遍历确定二叉树:就是找到中序遍历中二叉树的根结点的下标,然后根据左右两子树进行递归二叉树的深度优先遍历和广度优先遍历:就是利用栈和队列进行存取元素/* * @Author:Beer * @Date:2019-10-06 * @Description: * 通过二叉树的前序和中序遍历确定二叉树:就是找到中序遍历中二叉树的根结点的下标,然后根据左右两子树进行递归...原创 2019-10-07 01:13:48 · 281 阅读 · 0 评论 -
Java中interrupt() interrupted() isInterrupted()辨析
Java中interrupt() interrupted() isInterrupted()辨析: interrupt()是将线程的中断标记设置为true,但不会停止线程。在中断状态下如果线程处于阻塞状态(即调用了sleep(),wait(),join()方法)就会产生一个InterruptedException,并且由于线程处于阻塞状态,所以该中断标记立即清除为false inte...原创 2019-10-03 20:21:22 · 840 阅读 · 0 评论 -
JDK1.8后HashMap源码深度分析
JDK1.8后HashMap源码深度分析:1.成员变量:1.1 初始化容量–桶的数量(16):static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 161.2 最大容量:static final int MAXIMUM_CAPACITY = 1 << 30;1.3 负载因子:static final f...原创 2019-08-29 13:40:40 · 192 阅读 · 0 评论 -
Map关系图
关于HashMap源码的详细分析:点这里原创 2019-05-09 23:21:12 · 525 阅读 · 0 评论 -
java中数组的基本使用
一、数组1.数组的基本使用详细使用参照 Github 上的代码实例 2.数组元素的增加 public class Test { public static void main(String[] args) { int[] arr = new...原创 2019-02-20 17:09:28 · 200 阅读 · 0 评论 -
java语言求101~200之间的质数(素数)
java语言求101~200之间的质数(素数)这里使用两种方法:1. 使用带标签的continue2. 普通方法public class TestLableContinue { public static void main(String[] args) { int count = 0; outer:for(int i=101; i<200; ...原创 2019-02-13 16:25:04 · 2699 阅读 · 0 评论 -
java数据结构--栈
二、栈1.栈的定义: 栈又叫LIFO(后进先出)表:是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈的顶(top)。2.栈的基本操作:push(进栈)pop(出栈)代码实例package demo.test;public class MyStack { //栈的底层使用数组存储元素 int[] elements; pub...原创 2019-02-22 17:38:01 · 135 阅读 · 0 评论