![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
文章平均质量分 86
tmlcitmyhome
努力的前提就是不要太羡慕别人
展开
-
HashMap和Hashtable的区别
相同点 HashMap和Hashtable都是存储“键值对(key-value)”的散列表。存储的思想都是:通过table数组存储,数组的每一个元素都是一个Entry;而一个Entry就是一个单向链表,Entry链表中的每一个节点保存了key-value键值对数据。 添加key-value键值对:首先,根据key值计算出哈希值,再计算出数组索引。然后,根据数组索引找到Entry(单向链原创 2017-08-20 21:57:07 · 221 阅读 · 0 评论 -
TreeSet实现原理及源码分析
类似于HashMap和HashSet之间的关系,HashSet底层依赖于HashMap实现,TreeSet底层则采用一个NavigableMap来保存TreeSet集合的元素。但实际上,由于NavigableMap只是一个接口,因此底层依然是使用TreeMap来包含Set集合中的所有元素。 下面是TreeSet类的部分源代码 public class TreeSet extends Abs原创 2017-08-20 20:21:44 · 230 阅读 · 0 评论 -
Hashtable实现原理及源码分析
Hashtable简介 和HashMap一样,Hashtable也是一个散列表,存储的内容是键值对(key-value)映射。 Hashtable在Java中的定义为: public class Hashtable extends Dictionary implements Map, Cloneable, java.io.Serializable 从源码中可以看出原创 2017-08-20 22:07:08 · 299 阅读 · 0 评论 -
Iterator迭代器
Iterator是一个迭代器接口,它专门用于迭代各种Collection集合,包括Set集合和List集合。如果查阅JDK的API文档将发现,Iterator迭代器接口只有一个Scanner实现类。显然Scanner并不能用于迭代Set、List集合,那迭代List、Set集合的Iterator迭代器实现类在哪里 下面测试使用Iterator迭代各种集合所返回的Iterator对象。原创 2017-08-20 22:12:54 · 271 阅读 · 0 评论 -
TreeMap实现原理及源码分析
TreeMap是一个有序的key-value集合,基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建时提供的Comparator进行排序、 对于TreeMap而言,每个Entry都被当成“红黑树”的一个节点对待,示例如下: public class TreeMapTest { public static void main(Strin原创 2017-08-20 22:18:33 · 243 阅读 · 0 评论 -
HashMap实现原理及源码分析
当我们执行如下操作时: HashMapString, Float> map = new HashMapString, Float>(); map.put("语文", 86.5f); map.put("数学", 93.0f); map.put("英语", 90.0f); 对于HashMap而言,采用一种所谓的“Hash算法”来决定每个元素的存储位置。当程序执行 map.put(“语文”,原创 2017-08-28 09:17:06 · 214 阅读 · 0 评论 -
ArrayList和Vector的区别
Vector和ArrayList这两个集合类的本质并没有太大的不同,它们都实现了List接口,而且底层都是基于Java数组来存储集合元素。 在ArrayList集合类的源代码中可以看到如下一行。 //采用elementData数组来保存集合元素 private transient Object[] elementData; 在Vector集合类的源代码中也可看到类似的一行。原创 2017-08-28 09:36:42 · 279 阅读 · 0 评论