import java.util.*;
/**
* 用键值对填充一个HashMap.打印结果,通过散列码来展示其排序。抽取这些键值对,按照键进行排序,并将结果置于一个LinkedHashMap中。展示其搜维护的插入顺序。
*/
public class Excrcise18 {
public static void main(String[] args) {
Random random = new Random(100);
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < 20; i++) {
map.put(random.nextInt(100), i);
}
System.out.println("通过散列码来展示其排序 :" + map);
Map<Integer, Integer> linkedHashMap = new LinkedHashMap<Integer, Integer>();
Set<Integer> keySet = map.keySet();
List<Integer> keyList = new ArrayList<Integer>(keySet);
System.out.println("before sort :" + keyList);
Collections.sort(keyList);
System.out.println("after sort : " + keyList);
for (Integer key : keyList) {
linkedHashMap.put(key, map.get(key));
}
System.out.println("LinkedHashMap排序 :" + linkedHashMap);
}
}
/* Output:
通过散列码来展示其排序 :{66=5, 36=6, 73=18, 74=2, 13=9, 78=17, 15=0, 80=16, 17=11, 50=1, 19=19, 52=14, 22=10, 23=8, 88=7, 56=12, 57=13, 91=4, 59=15}
before sort :[66, 36, 73, 74, 13, 78, 15, 80, 17, 50, 19, 52, 22, 23, 88, 56, 57, 91, 59]
after sort : [13, 15, 17, 19, 22, 23, 36, 50, 52, 56, 57, 59, 66, 73, 74, 78, 80, 88, 91]
LinkedHashMap排序 :{13=9, 15=0, 17=11, 19=19, 22=10, 23=8, 36=6, 50=1, 52=14, 56=12, 57=13, 59=15, 66=5, 73=18, 74=2, 78=17, 80=16, 88=7, 91=4}
*///:~