摘要: 1、概念: AVL树本质上还是一个二叉搜索树,不过比二叉搜索树多了一个平衡条件:每个节点的左右子树的高度差不大于1。 二叉树的应用是为了弥补链表的查询效率问题,但是极端情况下,二叉搜索树会无限接近于链表,这种时候就无法体现二叉搜索树在查询时的高效率,而最初出现的解决方式就是AVL树。如下图: 2、旋 阅读全文
posted @ 2016-12-02 16:24 希罗云烟 阅读(4073) 评论(0) 推荐(0) 编辑
摘要: LinkedList是List接口的一个有序链表实现,存储节点是内部类Node,Node中有两个属性prev和next,负责连接前后两个元素。由于不是使用数组进行存储,所以查询需要遍历链表一半的元素(后面会解释),但是因为插入的时候只需要查询插入位置的元素,然后修改前后两个元素的对应属性即可,所以插 阅读全文
posted @ 2016-11-05 14:40 希罗云烟 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 关键常量: private static final int DEFAULT_CAPACITY = 10; 当没有其他参数影响数组大小时的默认数组大小 private static final Object[] EMPTY_ELEMENTDATA = {}; 如果elementData用这个变量初始 阅读全文
posted @ 2016-11-01 11:18 希罗云烟 阅读(186) 评论(0) 推荐(0) 编辑
摘要: LinkedHashMap是HashMap的子类,很多地方都是直接引用HashMap中的方法,所以需要注意的地方并不多。关键的点就是几个重写的方法: 1、Entry是继承与Node类,也就是LinkedHashMap与HashMap的根本区别所在,Node是链表形式,只有next与下一个元素进行连接 阅读全文
posted @ 2016-10-26 11:19 希罗云烟 阅读(414) 评论(2) 推荐(0) 编辑
摘要: 1、HashMap概述: HashMap是基于Map接口的一个非同步实现,此实现提供key-value形式的数据映射,支持null值。 HashMap的常量和重要变量如下: DEFAULT_INITIAL_CAPACITY = 16 Node数组的默认长度 MAXIMUM_CAPACITY = 10 阅读全文
posted @ 2016-10-25 21:01 希罗云烟 阅读(1693) 评论(0) 推荐(4) 编辑