分类: Java
2008-03-30 10:46:59
#测试Random生成随机数的分布 package com.biaoflying; import java.util.*; class Counter{ int i; public String toString(){ return ""+i; } } public class RandomTest1{ public static void main(String[] args){ Random rand=new Random(); Integer ky=0; Map map=new HashMap(); for(int i=0;i<10000;i++){ ky=new Integer(rand.nextInt(20)); //System.out.println(ky); if(map.containsKey(ky)) ((Counter)map.get(ky)).i++; else map.put(ky,new Counter()); } System.out.println(map); } } #一次输出的结果如下,可以看到还是挺均匀的: {0=494, 1=479, 2=522, 3=498, 4=494, 5=494, 6=486, 7=490, 8=526,9=551, 10=496, 11=487, 12=496, 13=556, 14=512, 15=483, 17=468, 16=475, 19=475, 18=498} |
#使用SortedMap&LinkedHashMap TreeMap是SortedMap当前唯一的实现,提供了以下的功能方法 Comparator comparator()返回当前Map采用的Comparator,若返回null则表示以自然方式排序 Object firstKey()返回Map的第一个键 Object lastKey()返回Map中最后一个键 SortedMap subMap(fromKey,toKey)生成Map的子集,范围由参数指定 SortedMap headMap(toKey) SortedMap tailMap(fromKey) 例子参见P343 TIJ ---------------------------------------------------------- LinkedHashMap与HashMap类似为了提高速度散列化所有的元素,但在遍历键值对时又以元素的插入顺序返回。此外可以在ctor中设定,使之采用基于LRU算法来返回键值对。于是最近没有访问过的元素会出现在队列前面。 例子参见P345 TIJ |
Map查询与插入的原理及其流程可以参看P348-353。 hashcode,equals,Map.Entry. |