数据结构与算法
van的博客
梦想注定是孤独的旅行。
展开
-
ArrayList底层实现(JAVA)
当程序写的多了以后就会发现每天的工作其实就是用算法操纵数据而已,但是高级语言封装的特性,让程序员很少去关注一些数据结构的底层实现,特别是现在太多人都不是学计算机出身的,都是培训机构快餐式培养出来的,不过不重要,英雄不问出处,技术牛不牛逼,个人认为取决于个人悟性和自己的努力程度,下面鉴于个人学习分享下,集合的底层实现. public class MyArrayList { // 默认容量原创 2015-09-13 17:27:19 · 432 阅读 · 0 评论 -
数据结构之简易版hashmap
在编程中hashmap是一种强大的数据结构,可以说是编程利器,下面是我自己写的简易版hashmap。 public class MyHashMap { // 空的键值对 static final Entry[] EMPTY_TABLE = {}; transient Entry[] table = (Entry[]) EMPTY_TABLE; // 键值对数量 transient in原创 2015-09-21 21:42:12 · 252 阅读 · 0 评论 -
hashset的底层实现
hashset其实就是基于hashmap实现的,感觉没啥好说的,底层运用了hashmap的key不能重复实现不重复存储的逻辑,value为固定的object对象,在已有基础上封装组合旧的数据类型组成新的数据结构,也是一种强大的编程思想,一种站在巨人的肩膀上可以看得更远的思想,呵呵。 public class HashSet extends AbstractSet implements Set原创 2015-09-21 21:59:11 · 804 阅读 · 0 评论 -
自定义Tree
上源码,一切尽在不言中,树的结构分为左子树,右子树,每棵树上最多有两个叶子节点,根节点是顶级节点,见下图: java中Treemap运用的业务场景可能多一点,因为hashmap本身是无序的,通过TreeMap则可自定义排序。原创 2015-09-22 21:37:04 · 223 阅读 · 0 评论 -
自定义集合双向链表
写博客真心需要毅力,很多时候都是有心无力,因为工作之外的事感觉都干不好,但是只有逼着自己去做才能更加优秀,以下是自定义双向链表的实现。 public class MyLinkedList { // 尾节点 private transient Node last; // 头节点 private transient Node first; // 节点个数 private int si原创 2015-09-20 22:36:21 · 325 阅读 · 0 评论