![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 54
世界的尽头..
这个作者很懒,什么都没留下…
展开
-
浅谈java.util.ArrayList
目录ArrayList的成员变量ArrayList构造器add()方法执行流程数组扩容 growremove() ArrayList的成员变量 //数组的默认容量大小 private static final int DEFAULT_CAPACITY = 10; //当传入数组大小为0时,创建的数组 private static final Object[] EMPTY_ELEMENTDATA = {}; //默认使用无参构造器时创建的数组 private st原创 2021-08-11 14:11:07 · 6582 阅读 · 0 评论 -
浅谈LinkedList
概述 LinkedList底层是双向量表结构,实现了List和Queue接口,内部用Node来包装数据,Deque双端队列,继承了Queue接口,在Queue的基础上做了很多的扩展,可以在两端进行插入和删除,使得Deque数据结构非常灵活. 使用方式 List<Integer> list = new LinkedList<>(); //数组使用 Queue<Integer> queue = new LinkedList<>();//队列使用 Deque<原创 2021-08-11 20:27:15 · 214 阅读 · 0 评论 -
令人头疼的HashMap
目录HashMap简介通过内部内Node节点来包装数据HashMap中的成员变量接下来聊一聊HashMap的构造方法HashMap的put方法HashMap的get方法HashMap扩容 HashMap简介 JDK1.8之前,HashMap的底层是数组+链表,JDK1.8之后底层是由数组+链表+红黑树组成,当链表长度到达一定时,会转化为红黑树,查找的效率由之前的链表查找O(n) 变为红黑树O(log n),查询元素的效率有所提高 通过内部内Node节点来包装数据 static class Node<原创 2021-08-12 19:22:40 · 246 阅读 · 0 评论 -
java 实现堆(优先级队列)
public class MyPriorityQueue { /** * 堆的向下调整 * @param arr 数组,进行堆的向下调整 * @param parent 为父节点,也就相当于数组的第一个元素下边 */ public static void shiftDown(int[] arr,int parent){ //按照大堆的方式来实现; //首先的记录孩子的节点位置,parent元素的下表是0原创 2021-03-26 15:42:19 · 171 阅读 · 0 评论 -
java实现栈和队列(简易版)
顺序表实现栈 public class MyStack { private int capacity = 100; private int[] data = new int[capacity]; private int size = 0; //入栈 public void push(int val){ //大于长度之后进行扩容 if(size >= data.length){ //进行扩容原创 2021-03-10 10:40:14 · 83 阅读 · 0 评论 -
数据结构常见排序
文章目录插入排序 插入排序 代码实现原创 2021-04-01 20:07:19 · 107 阅读 · 0 评论