2016年5月5日
摘要: HashTable和HashMap很多的操作都是相同的,通过对key值进行hash获取相应的下标,采用拉链法。 下面就说说两者的不同吧。 1)hashmap在第一次put的时候才扩容,而hashtable是在初始化的时候,就新建了一个指定大小的数组,而不是推迟要第一次put。 2)hashtable 阅读全文
posted @ 2016-05-05 16:21 古剑苏苏 阅读(136) 评论(0) 推荐(0) 编辑
摘要: TreeSet有序没有重复对象的集合,实现了set接口。其实它的底层就是对TreeMap的操作。在默认的构造函数中,就初始化了一个TreeMap对象。 也许你会问,TreeSet每次添加一个元素,而TreeMap是添加key value。其实是在put的时候,会构造一个Object对象作为value 阅读全文
posted @ 2016-05-05 16:12 古剑苏苏 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 原文出自:http://cmsblogs.com/?p=1013。尊重作者的成果 左旋、右旋的示意图如下: (左旋) (右旋) 左旋、右旋的示意图如下: (左旋) (右旋) 阅读全文
posted @ 2016-05-05 11:30 古剑苏苏 阅读(393) 评论(0) 推荐(0) 编辑
摘要: http://cmsblogs.com/?p=1013 原文出处。 TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通 阅读全文
posted @ 2016-05-05 10:34 古剑苏苏 阅读(889) 评论(0) 推荐(0) 编辑
  2016年4月22日
摘要: 从类名可以看出,AarryList是基于数组的增删查改,LinkedList是基于链表的。在这篇文章中,主要想通过三个方面来介绍: 1)ArrayList的设计。 2)LinkedList的设计。 3)AarryList和LinkedList的比较。 ArrayList的设计 ArrayList是基 阅读全文
posted @ 2016-04-22 11:50 古剑苏苏 阅读(1177) 评论(0) 推荐(0) 编辑
  2016年4月21日
摘要: 由浅入深解析HashMap系列一 HashMap简单实现 增、删、查。 前面简单的实现了hashmap的增删查功能,这一章节主要是介绍扩容(不考虑冲突),当数组元素达到一定阈值时,需要扩容,扩容之后,需要对原来的数组中的元素进行再次hash。在开始之前先介绍几个概念: 基本概念 初始容量:DEFAU 阅读全文
posted @ 2016-04-21 21:57 古剑苏苏 阅读(526) 评论(0) 推荐(0) 编辑
  2016年4月20日
摘要: 如果让我们自己来设计HashMap,应该怎么做呢?数组。用数组存储节点,每个节点有key和value信息。那首先我们得要有节点存储key,value。 节点设计 在这个Node类中,有三个属性,hash值、key、value值。 1 class Node<K,V> { 2 final int has 阅读全文
posted @ 2016-04-20 22:36 古剑苏苏 阅读(1143) 评论(0) 推荐(2) 编辑
摘要: HashMap是工作中用的比较多的集合类框架,是java语言中非常重要的数据结构,记得毕业找工作时,面试官都特别喜欢问hashmap和hashtable,由此可见它的重要性。 我计划写一个系列,由浅入深解析HashMap(不知道能不能坚持): 由浅入深解析HashMap HashMap简单实现 增、 阅读全文
posted @ 2016-04-20 22:02 古剑苏苏 阅读(248) 评论(0) 推荐(0) 编辑
  2015年8月29日
摘要: 分析重入锁 阅读全文
posted @ 2015-08-29 21:43 古剑苏苏 阅读(499) 评论(0) 推荐(0) 编辑
  2015年4月30日
摘要: 背景:早期开发未考虑全球化,英文版系统,页面很多,每个页面内容也很多。目的:本地化,如果选择特定的语言环境,应该显示特定语言。系统简介:1)没有采用windows控件,而是根据系统的特性自定义控件,比如Button,自定义的控件为RCButon、RCTextBox RCLabel等。2)Win fo... 阅读全文
posted @ 2015-04-30 15:48 古剑苏苏 阅读(841) 评论(0) 推荐(1) 编辑