如何给HashMap中的值排序?这个问题很多人都遇到过,很常见的一个方案是使用LinkedHashMap,因为LinkedHashMap可以记住元素放入的顺序,可以认为是真正的“有序”(想让HashMap有序是不可能的),我比较喜欢。然而问题是往往数据已经封装在了HashMap中,我们必须手动的排序...
分类:
其他好文 时间:
2014-09-26 21:24:18
阅读次数:
197
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.
get(key) - Get the value (will always be positive) of the
key i...
分类:
其他好文 时间:
2014-09-24 10:31:06
阅读次数:
251
Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set.
get(key) - Get the value (will always be positive) of the
key i...
分类:
其他好文 时间:
2014-09-24 09:40:46
阅读次数:
177
我们之前讲过的 HashMap 的性能表现非常不错,因此使用的非常广泛。但是它有一个非常大的缺点,就是它内部的元素都是无序的。如果在遍历 map 的时候, 我们希望元素能够保持它被put进去时候的顺序,或者是元素被访问的先后顺序,就不得不使用 LinkedHashMap。
LinkdHashMap 继承了 HashMap,因此,它具备了 HashMap 的优良特性-高性能。在HashMap 的基础上, LinkedHashMap 又在内部维护了一个链表,用来存放元素的顺序。因此,我们可以将 ...
分类:
其他好文 时间:
2014-09-24 00:49:45
阅读次数:
477
题目:给定一个string,找出第一个string里的unique character,如“cisco”的话就应该是i,“cat”的话就是c。
第一种方法是用LinkedHashMap保留数据的顺序,过一遍string,对字符进行计数,然后找到第一个数量为1的字符即可。
第二种方法是用一个HashSet来存已经重复的字符,然后用个arraylist来存仅出现了一次的字符。
第三种方法是用Ha...
分类:
其他好文 时间:
2014-09-21 09:11:30
阅读次数:
293
最主要的实现类有 Hashtable、HashMap、LinkedHashMap和 TreeMap。在 HashTable 的子类中,还有 Properties的实现。Properties 是专门读取配置文件的类,我们会在稍后介绍。这里首先值得关注的是 HashMap 和 HashTable 两套不同的实现,两者都实现了 Map 接口。从表面上看,并没有多大差别,但是在内部实现上却有些微小的细节。
首先,HashTable 的大部分方法都做了同步,而 HashMap 没有,因此, HashM...
分类:
其他好文 时间:
2014-09-18 03:06:23
阅读次数:
361
package com.lc.day01.ForEnhance;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import...
分类:
其他好文 时间:
2014-09-14 20:46:57
阅读次数:
204
package com.saicfc.pmpf.internal.manage.utils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util....
分类:
编程语言 时间:
2014-09-12 17:14:03
阅读次数:
609
内存缓存(LruCache):系统提供的LruCache类是非常适合用作缓存Bitmap任务的,它将最近被引用到的对象存储在一个强引用的LinkedHashMap中,并且在缓存超过了指定大小之后将最近不常使用的对象释放掉。注意:以前有一个非常流行的内存缓存实现是SoftReference(软引用)或...
分类:
其他好文 时间:
2014-09-05 17:47:21
阅读次数:
204
Android用LruCache来取代原来强引用和软引用实现内存缓存,因为据说自2.3以后Android将更频繁的调用GC,导致软引用缓存的数据极易被释放。
LruCache使用一个LinkedHashMap简单的实现内存的缓存,没有软引用,都是强引用。如果添加的数据大于设置的最大值,就删除最先缓存的数据来调整内存。他的主要原理在trimToSize方法中。需要了解两个主要的变量size和...
分类:
其他好文 时间:
2014-08-31 00:30:30
阅读次数:
237