HashMap,LinkHashMap和TreeMap各有各的功效。
//TreeMap如果你要按自然顺序或自定义顺序遍历键,它是不错的选择,从其中取出来是排序后的键值对
Map map = new TreeMap();
-------------------------------------------------------------------------------------------------------
import java.util.Comparator;
import java.util.TreeMap;
publicclass Demo{
publicstaticvoid main(String[] args) {
//自然状态
TreeMap treeMap1 = new TreeMap();
treeMap1.put("2", "1");
treeMap1.put("b", "1");
treeMap1.put("1", "1");
treeMap1.put("a", "1");
System.out.println("result-treeMap1="+treeMap1);
//指定排序器
TreeMap treeMap2 = new TreeMap(new Comparator(){
/*
* int compare(Object o1, Object o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
publicint compare(String o1, String o2) {
//指定排序器按照降序排列
return o2.compareTo(o1);
}
});
treeMap2.put("2", "1");
treeMap2.put("b", "1");
treeMap2.put("1", "1");
treeMap2.put("a", "1");
System.out.println("result-treeMap2="+treeMap2);
}
}
自然状态:treeMap1={1=1, 2=1, a=1, b=1}
降序状态:treeMap2={b=1, a=1, 2=1, 1=1}
//注:TreeMap是参考网上一名作者的案例
//LinkedHashMap 是HashMap的一个子类,如果需要输出的顺序和输入的相同,那么用LinkedHashMap可以实现,它还可以按读取顺序来排列.
Map map = new LinkedHashMap();
Map lhm = new LinkedHashMap();
lhm.put("1", "sddddf");
lhm.put("3", "2ddd22");
lhm.put("2", "3ddd33");
for(Iterator t = lhm.keySet().iterator();t.hasNext();){
System.out.println((String) lhm.get(t.next()));
}
结果:
sddddf
2ddd22
3ddd33
//HashMap里面存入的键值对在取出的时候是随机的,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。在Map 中插入、删除和定位元素,HashMap 是最好的选择。
Map map = new HashMap();
阅读(4413) | 评论(1) | 转发(2) |