- 浏览: 29160 次
- 性别:
- 来自: 北京
最新评论
java.util.LinkedHashMap:
LinkedHashMap继承自HashMap,但它具有可预知的迭代顺序。LinkedHashMap维护着一个运行于所有条目的双重链表,此链表定义了迭代顺序,这个顺序可以是插入顺序或者是访问的顺序。基本操作和父类HashMap相似,它通过重写父类相关的方法来实现自己的双重链表特性。
LinkedHashMap中重要的字段:
1. Entry<K,V> header
在构造的时候被初始化,开始的时候header的头尾都是指向自身。
2. boolean accessOrder
迭代时的顺序,若为false则按照插入的顺序排序;若为true则按照访问的顺序排序,读的越多越在前。默认值为false,即按照插入顺序进行排序。
LinkedHashMap的构造函数:
1. LinkedHashMap(int initialCapacity, float loadFactor)
2. LinkedHashMap (int initialCapacity)
3. LinkedHashMap ()
4. LinkedHashMap (Map<? extends K, ? extends V> m)
5. LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
LinkedHashMap调用了父类HashMap的构造方法。不同的是增加了accessOrder字段的初始化。我们可以看到,附非指定,accessOrder的默认值为false,也就是说,LinkedHashMap中元素默认的迭代顺序为放入的次序,只有当指定accessOrder为true时,元素的迭代顺序才是按照访问的频次。
LinkedHashMap继承自HashMap,但它具有可预知的迭代顺序。LinkedHashMap维护着一个运行于所有条目的双重链表,此链表定义了迭代顺序,这个顺序可以是插入顺序或者是访问的顺序。基本操作和父类HashMap相似,它通过重写父类相关的方法来实现自己的双重链表特性。
LinkedHashMap中重要的字段:
1. Entry<K,V> header
在构造的时候被初始化,开始的时候header的头尾都是指向自身。
2. boolean accessOrder
迭代时的顺序,若为false则按照插入的顺序排序;若为true则按照访问的顺序排序,读的越多越在前。默认值为false,即按照插入顺序进行排序。
LinkedHashMap的构造函数:
1. LinkedHashMap(int initialCapacity, float loadFactor)
2. LinkedHashMap (int initialCapacity)
3. LinkedHashMap ()
4. LinkedHashMap (Map<? extends K, ? extends V> m)
5. LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
LinkedHashMap调用了父类HashMap的构造方法。不同的是增加了accessOrder字段的初始化。我们可以看到,附非指定,accessOrder的默认值为false,也就是说,LinkedHashMap中元素默认的迭代顺序为放入的次序,只有当指定accessOrder为true时,元素的迭代顺序才是按照访问的频次。
发表评论
-
asdfasfd
2014-04-12 17:11 625http://www.laomaotao.net/?H9197 ... -
工木rrrr
2012-12-20 20:33 0工工工工工工工工 -
http://yiminghe.iteye.com/blog/291126
2011-10-13 18:04 0http://yiminghe.iteye.com/blog/ ... -
java.util.concurrent.Executors源码学习(三)
2011-02-01 11:43 1327Executors中的重要方法(续): 8. Schedu ... -
java.util.concurrent.Executors源码学习(二)
2011-02-01 11:41 1286Executors中的重要方法(续): 5. Executo ... -
java.util.concurrent.Executors源码学习(一)
2011-02-01 11:39 1773java.util.concurrent.Executors: ... -
java.util.concurrent.ExecutorService(二)
2011-02-01 11:37 1323ExecutorService中重要的方法(续): 6. ... -
java.util.concurrent.ExecutorService(一)
2011-02-01 11:36 2472java.util.concurrent.ExecutorSe ... -
java.util.concurrent.LinkedBlockingDeque源码学习(三)
2011-02-01 11:33 1262LinkedBlockingDeque中的重要方法(续): ... -
java.util.concurrent.LinkedBlockingDeque源码学习(二)
2011-02-01 11:32 1161LinkedBlockingDeque中的重要方法: 1. ... -
java.util.concurrent.LinkedBlockingDeque源码学习(一)
2011-02-01 11:30 2436java.util.concurrent.LinkedBloc ... -
java.util.concurrent.ConcurrentHashMap源码学习(四)
2011-02-01 11:29 1445ConcurrentHashMap中内部类Se ... -
java.util.concurrent.ConcurrentHashMap源码学习(三)
2011-02-01 11:27 1085ConcurrentHashMap中的内部类: 1. sta ... -
java.util.concurrent.ConcurrentHashMap源码学习(二)
2011-02-01 11:24 1181ConcurrentHashMap中重要的方法: 1. V ... -
java.util.concurrent.ConcurrentHashMap源码学习(一)
2011-02-01 11:22 2092java.util.concurrent.Concurrent ... -
java.util.LinkedHashMap源码学习(二)
2011-02-01 11:20 1496LinkedHashMap中重要的方法: 1. void c ... -
java.util.HashMap源码学习(二)
2011-02-01 11:17 1012HashMap中重要的方法: 1. public V put ... -
java.util.HashMap源码学习(一)
2011-02-01 11:09 1138java.util.HashMap: table数组中存放的 ...
相关推荐
在Java编程语言中,`java.util`包是核心库的一部分,包含了大量用于处理日常编程任务的类和接口。这个源码分析将深入探讨`java.util`包中的关键组件,了解它们的工作原理,这对于任何Java开发者来说都是至关重要的。...
Java的`java.util.HashMap`和`java.util.LinkedHashMap`是两种常见的散列表实现。 12. 双向链表:双向链表中的每个节点包含前后两个指针,支持双向遍历。Java的`java.util.Deque`接口和`java.util.LinkedList`类...
在Java编程语言中,`java.util`包是核心库的一部分,包含了大量用于处理日常编程任务的类和接口。这个包提供了各种数据结构(如ArrayList、LinkedList、HashSet、HashMap)、集合框架、日期时间处理、随机数生成、IO...
Java的`java.util.HashMap`和`java.util.LinkedHashMap`是常见的哈希表实现。 8. 栈和队列的变种:例如,堆(优先队列)提供了按优先级排序的队列,Java的`java.util.PriorityQueue`实现了这个功能。 接下来,我们...
缓慢更新一些个人学习java相关源码过程中的笔记,在这里你将不可避免地看到以下情况: 个别不懂/没想好的地方留空待补全 限于个人水平出现的解读错误 编辑错误 排版不统一 如发现有错,欢迎指正! 如果对你有用,...
总的来说,"基于Java的实例源码-Java缓存工具 SimpleCache.zip"是一个宝贵的教育资源,为Java开发者提供了实际操作缓存机制的机会,从而提升他们的技能和理解,对于那些希望优化应用程序性能或构建高效服务的开发者...
Java算法大全是一个全面涵盖近100种算法的资源包,专为Java程序员设计,旨在帮助他们提升在...这个源码包是一个宝贵的资源,可以帮助学习者直观地了解和掌握各种算法的实现细节,同时为实际项目中的问题解决提供参考。
在这个名为"java源码结构-data-structures-java:数据结构源代码"的项目中,我们可以看到一个开源的Java实现,涵盖了多种经典的数据结构。这个项目可能是某个课程或教程的配套资源,旨在帮助学习者深入理解数据结构的...
根据提供的文件信息,以下是关于Java基础学习的知识点总结: ### Java基础概念 1. **Set接口概述**:Set接口的特性是无序(元素插入顺序不保留)和不可重复(不允许出现重复元素)。它是Java集合框架的一部分,...
通过深入研究这个项目的源码,我们可以学习如何在Java中高效地实现高速缓存,以及如何利用并发优化性能。这对于开发高性能、高并发的应用程序是非常有价值的。同时,理解并掌握缓存的原理和实践,对于提升软件系统的...
Java中,可以使用`java.util.LinkedHashMap`类,通过设置`accessOrder`为`true`来实现LRU缓存。Python中,有第三方库`functools.lru_cache`提供了内置的LRU缓存功能。在C++中,可以自定义数据结构来实现LRU缓存。 ...
在Java中,我们可以使用`java.util.Random`类来生成随机数。这个类提供了多种方法,如`nextInt()`用于生成指定范围内的整数,`nextDouble()`用于生成0到1之间的双精度浮点数等。要创建一个Random对象,只需调用`new ...
可以使用`synchronized`关键字或者`java.util.concurrent`包中的工具,如`ConcurrentHashMap`来实现线程安全的缓存操作。 6. **性能优化**: - 使用`WeakReference`或`SoftReference`可以避免内存泄漏,尤其是在...
而`TreeNode`类是`HashMap8`(通常指的是`java.util.HashMap`的早期版本,8可能是其内部版本号)中的一个关键内部类,它用于实现哈希表的红黑树结构。当`HashMap`中的元素数量超过特定阈值时,为了保持性能,`...
数据结构是计算机科学中的核心概念,它涉及到如何...这个"**dataStructure-master**"可能包含了上述数据结构的Java实现源码,通过学习和实践这些代码,可以深入理解数据结构的工作原理,并能熟练地应用到实际编程中。