- 博客(6)
- 收藏
- 关注
原创 快速排序
快速排序的基本思想就是:让每个元素都摆正自己的位置。不多说,直接先来个例子!现在有下列一组数需要排序,我们先选定一个主元,通常都是选第一个或最后一个。这里我们选择第一个数,即20。我们初步的思想是,将20移动到它应该处在的位置上去!什么意思呢,就是把所有小于20的数挪到它的左边,大于20的数挪到它的右边就完事儿了。我们维护两个指针,small表示小于20的数,big表示大于20的数,从两边向中间扫描。我们只需要最后处理20的位置,所以从右端开始扫。第一个遇上的是8,小于20,很显然处在了它不该在的位
2020-12-12 11:17:49 370
原创 JavaSE复习之HashMap源码分析
HashMap可谓是Java里面的重中之重,不仅我们平时用的多,现在的面试官也爱问。因为其内部实现比较复杂,涉及到了大量的数据结构与算法的知识,所以深入的理解HashMap是很有必要的。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, S...
2020-04-26 13:38:45 216 1
原创 JavaSE复习之ArrayDeque源码分析
我们前面说过Deque接口,它是一个双端队列。除了有LinkedList这个实现类以外,它还有ArrayDeque这个实现类,内部是使用循环数组来实现的。public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>,...
2020-04-20 16:26:06 177
原创 JavaSE复习之LinkedList源码分析
上一篇分析了ArrayList,ArrayList内部是通过数组实现的,元素在内存中是连续存放的。而LinkedList不同,顾名思义,它的内部是通过链表实现的,准确来说,是双向链表。java里面的容器类,其实就是对各种数据结构进行了封装和实现,所以要分析这些类,其实主要就是分析一下它们各自增删改查的方法都是怎样实现的。public class LinkedList<E> e...
2020-04-19 18:09:48 173
原创 JavaSE复习之ArrayList源码分析
想尝试做源码分析好久了,总是想着要不停去学习java新的知识,静不下心来回顾学过的知识。今天终于是开了个头,希望能一直坚持吧! 其实网上关于各种源码分析的文章或者博客已经很多了,很多也写的特别好,但我想着,还是要自己真正的过一遍才能有更深刻的印象和更深入的了解,才能够学的更加扎实。 每天进步一点点!public class ArrayList<E> extends AbstractL...
2020-04-18 16:08:11 164
原创 Java笔记——常用API
自学Java ing,记录一下今天所学。System类Fieldstatic InputStream in “标准”输入流。static PrintStream out “标准”输出流。static PrintStream err “标准”错误输出流。Methodstatic long currentTimeMillis() 返回当前时间(以...
2020-02-28 22:43:40 152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人