随笔分类 -  Java

java基础知识
HashTable和HashMap
摘要:HashTable和HashMap很多的操作都是相同的,通过对key值进行hash获取相应的下标,采用拉链法。 下面就说说两者的不同吧。 1)hashmap在第一次put的时候才扩容,而hashtable是在初始化的时候,就新建了一个指定大小的数组,而不是推迟要第一次put。 2)hashtable 阅读全文
posted @ 2016-05-05 16:21 古剑苏苏 阅读(167) 评论(0) 推荐(0)
TreeSet的剖析
摘要:TreeSet有序没有重复对象的集合,实现了set接口。其实它的底层就是对TreeMap的操作。在默认的构造函数中,就初始化了一个TreeMap对象。 也许你会问,TreeSet每次添加一个元素,而TreeMap是添加key value。其实是在put的时候,会构造一个Object对象作为value 阅读全文
posted @ 2016-05-05 16:12 古剑苏苏 阅读(160) 评论(0) 推荐(0)
TreeMap--put和delete
摘要:http://cmsblogs.com/?p=1013原文出处 put 操作,按照上面说的五种情况进行处理。 对于delete操作,首先找到替换节点,替换之后,再删除该节点。替换节点用的右分支最左边。它需要根据删除节点的兄弟节点进行旋转处理。 红黑树删除节点 针对于红黑树的增加节点而言,删除显得更加 阅读全文
posted @ 2016-05-05 11:36 古剑苏苏
TreeMap--左旋右旋
摘要:原文出自:http://cmsblogs.com/?p=1013。尊重作者的成果 左旋、右旋的示意图如下: (左旋) (右旋) 左旋、右旋的示意图如下: (左旋) (右旋) 阅读全文
posted @ 2016-05-05 11:30 古剑苏苏 阅读(408) 评论(0) 推荐(0)
TreeMap的实现--红黑树
摘要:http://cmsblogs.com/?p=1013 原文出处。 TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通 阅读全文
posted @ 2016-05-05 10:34 古剑苏苏 阅读(920) 评论(0) 推荐(0)
AarryList和LinkedList比较
摘要:从类名可以看出,AarryList是基于数组的增删查改,LinkedList是基于链表的。在这篇文章中,主要想通过三个方面来介绍: 1)ArrayList的设计。 2)LinkedList的设计。 3)AarryList和LinkedList的比较。 ArrayList的设计 ArrayList是基 阅读全文
posted @ 2016-04-22 11:50 古剑苏苏 阅读(1213) 评论(0) 推荐(0)
由浅入深解析HashMap系列二---扩容
摘要:由浅入深解析HashMap系列一 HashMap简单实现 增、删、查。 前面简单的实现了hashmap的增删查功能,这一章节主要是介绍扩容(不考虑冲突),当数组元素达到一定阈值时,需要扩容,扩容之后,需要对原来的数组中的元素进行再次hash。在开始之前先介绍几个概念: 基本概念 初始容量:DEFAU 阅读全文
posted @ 2016-04-21 21:57 古剑苏苏 阅读(551) 评论(0) 推荐(0)
由浅入深解析HashMap系列一---HashMap简单实现 增、删、查。
摘要:如果让我们自己来设计HashMap,应该怎么做呢?数组。用数组存储节点,每个节点有key和value信息。那首先我们得要有节点存储key,value。 节点设计 在这个Node类中,有三个属性,hash值、key、value值。 1 class Node<K,V> { 2 final int has 阅读全文
posted @ 2016-04-20 22:36 古剑苏苏 阅读(1193) 评论(0) 推荐(2)
由浅入深解析HashMap
摘要:HashMap是工作中用的比较多的集合类框架,是java语言中非常重要的数据结构,记得毕业找工作时,面试官都特别喜欢问hashmap和hashtable,由此可见它的重要性。 我计划写一个系列,由浅入深解析HashMap(不知道能不能坚持): 由浅入深解析HashMap HashMap简单实现 增、 阅读全文
posted @ 2016-04-20 22:02 古剑苏苏 阅读(257) 评论(0) 推荐(0)