Java提高十六:TreeMap深入分析】的更多相关文章

上一篇容器元素比较Comparable&Comparator分析的时候,我们提到了TreeMap,但没有去细致分析它,只是说明其在添加元素的时候可以进行比较,从而使得集合有序,但是怎么做的呢?我们下面来进行分析. 一.认识TreeMap 之前的文章讲解了HashMap,它保证了以O(1)的时间复杂度进行增.删.改.查,从存储角度考虑,这两种数据结构是非常优秀的. 尽管如此,HashMap还是有自己的局限性----它们不具备统计性能,或者说它们的统计性能时间复杂度并不是很好才更准确,所有的统计必须…
前面一章节,我们介绍了集合的类图,那么本节将学习Collection 接口中最常用的子类ArrayList类,本章分为下面几部分讲解(说明本章采用的JDK1.6源码进行分析,因为个人认为虽然JDK1.8进行了部分改动,但万变不离其宗,仍然采用的JDK1.6的引子进行的优化,因此学会了1.6对于1.8也就理解了). 一.ArrayList 的常见功能 在分析ArrayList的源码前,我们先看下ArrayList的常见的功能: package study.collection; import ja…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十六章:抽象局部内部类详解 下一章 "全栈2019"Java第九十七章:在方法中访问局部内部类成员详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第二十六章:流程控制语句中循环语句do-while 下一章 "全栈2019"Java第二十七章:流程控制语句中循环语句for 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&q…
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第十六章:下划线在数字中的意义 下一章 "全栈2019"Java第十七章:赋值运算符和算术运算符 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习小组&q…
因为最近工作太忙了,连续的晚上支撑和上班,因此没有精力来写下这篇博客,今天上午正好有一点空,因此来复习一下不太常用的集合体系大家族中的几个类:WeakHashMap&EnumMap&LinkedHashMap&LinkedHashSet,以便用到的时候不至于是什么都不知道.好了,言归正传,下面我们开始依次学习下: 一.WeakHashMap 1.WeakHashMap的结构 java.lang.Object ↳ java.util.AbstractMap<K, V> ↳…
首先想说的是关于HashMap源码的分析园子里面应该有很多,并且都是分析得很不错的文章,但是我还是想写出自己的学习总结,以便加深自己的理解,因此就有了此文,另外因为小孩过来了,因此更新速度可能放缓了,(#^.^#) 一.HashMap的简单使用 学习任何一个集合,首先最基本的是学会使用,因此首先我们看下如何使用HashMap,以及我们经常使用的方法又有哪些,代码如下: package study.collection; import java.util.HashMap; import java.…
我们经常用容器来存放元素,通常而言我们是不关系容器中的元素是否有序,但有些场景可能要求容器中的元素是有序的,这个时候用ArrayList  LinkedList  Hashtable HashMap HashSet 这些容器本身存放的时候就没有办法做到了,这个时候我们有两种思路:第一种思路:对刚刚我们提到的容器类的元素从新排序后存放,就是后面我们要介绍的利用Collections.sort 方法进行排序,第二种思路:是容器在添加元素的时候就进行大小的比较从而来保证元素的排序.下面我开始来详细介绍…
前面我们介绍了HashMap,Hashtable,那么还有一个hash家族,那就是HashSet;在讲解HashSet前,大家先要知道的是HashSet是单值集合的接口,即是Collection下面的,而HashMap是Map下面的,但是它和HashMap又是有关系的,所以在使用的时候大家需求要注意,重点还是要对下面的图需要熟悉,好了,我们开始分析. 一.HashSet 定义 翻看源码,HashSet的定义如下: public class HashSet<E> extends Abstract…
前面我们已经接触过几种数据结构了,有数组.链表.Hash表.红黑树(二叉查询树),今天再来看另外一种数据结构:栈. 什么是栈呢,我们先看一个例子:栈就相当于一个很窄的木桶,我们往木桶里放东西,往外拿东西时会发现,我们最开始放的东西在最底部,最先拿出来的是刚刚放进去的.所以,栈就是这么一种先进后出( First In Last Out,或者叫后进先出) 的容器,它只有一个口,在这个口放入元素,也在这个口取出元素.那么我们接下来学习JDK中的栈. 一.Vector&Stack的基本介绍和使用 我们先…