注:以下源码基于jdk1.7.0_11
之前介绍了一系列Map集合中的具体实现类,包括HashMap,HashTable,LinkedHashMap。这三个类都是基于哈希表实现的,今天我们介绍另一种Map集合,TreeMap。TreeMap是基于红黑树实现的。
介绍TreeMap之前,回顾下红黑树的性质:
首先,我们要明确,红黑树是一种二叉排序树,而且是平衡二叉树。因而红黑树...
分类:
其他好文 时间:
2014-08-23 23:01:21
阅读次数:
510
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 ...
分类:
编程语言 时间:
2014-08-21 19:47:05
阅读次数:
305
上一篇分析了LinkedHashMap源码,这个Map集合除了拥有HashMap的大部分特性之外,还拥有链表的特点,即可以保持遍历顺序与插入顺序一致。另外,当我们将accessOrder设置为true时,可以使遍历顺序和访问顺序一致,其内部双向链表将会按照近期最少访问到近期最多访问的顺序排列Entry对象,这可以用来做缓存。
这篇文章分析的LruCache并不是jdk中的类,而是来自安卓...
分类:
其他好文 时间:
2014-08-20 10:33:46
阅读次数:
171
注:以下源码基于jdk1.7.0_11
之前的两篇文章通过源码分析了两种常见的Map集合,HashMap和Hashtable。本文将继续介绍另一种Map集合——LinkedHashMap。
顾名思义,LinkedHashMap除了是一个HashMap之外,还带有LinkedList的特点,也就是说能够保持遍历的顺序和插入的顺序一致,那么它是怎么做到的呢?下面我们开始分析。
...
分类:
其他好文 时间:
2014-08-19 11:03:54
阅读次数:
259
现在由于项目需要,使用了LinkedHashMap,一开始由于很少用到Map,然后就直接使用了HashMap,在将数据成功存入之后取出来就出了问题,数据输出顺序没有按预期顺序输出,现在先看代码:文件内容(I0122120140811.chk):I01221|34622511|10317392891|12使用HashMap:packagecom...
分类:
其他好文 时间:
2014-08-14 17:11:59
阅读次数:
189
枚举转换工具
package com.util;
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang3.reflect.MethodUtils;
/**
* 功能:枚举使用工具
* 作者:Gary Huan...
分类:
编程语言 时间:
2014-08-14 16:49:38
阅读次数:
294
1、LRUCache的实现分析在分析LRUCache前先对LinkedHashMap做些介绍。LinkedHashMap继承于HashMap,它使用了一个双向链表来存储Map中的Entry顺序关系,这种顺序有两种,一种是LRU顺序,一种是插入顺序,这可以由其构造函数public LinkedHash...
分类:
其他好文 时间:
2014-08-05 15:27:59
阅读次数:
472
在Android开发过程中,遇到需要处理大量图片显示问题时,需要运用缓存机制。而Java中已经为我们提供了很好的工具LinkedHashMap,为我们实现LRU算法提供了很大的便利。下面结合LinkedHashMap源码来了解其原理。1.LinkedHashMap结构LinkedHashMap继.....
分类:
编程语言 时间:
2014-08-02 15:16:43
阅读次数:
382
代码:import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.LinkedHashMap;import java.util.List;import java.u...
分类:
其他好文 时间:
2014-08-01 19:21:32
阅读次数:
291
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang3.reflect.MethodUtils;
/**
*
* 功能:枚举使用工具
* 作者:Gary Huang
* 日期: 2014-3-5
* 版...
分类:
编程语言 时间:
2014-08-01 13:52:01
阅读次数:
424