Chinaunix首页 | 论坛 | 博客
  • 博客访问: 236926
  • 博文数量: 50
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1487
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-24 10:31
文章分类
文章存档

2014年(20)

2013年(30)

分类: Java

2014-03-12 11:41:39

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();
阅读(4419) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

CU博客助理2014-05-29 10:27:42

嘉宾点评:
(请确认文章的原创性,违规三次将取消参赛资格)该文的作者还是认真的理解了LinkHashMap和TreeMap的异同点。在实际的网站开发和大型MIS系统中,还是特别关注这些点滴的知识。java的集合需要充分的应用,不同的map是为不同的用途而设的。在优化设计中尤其要注意。