• 如何高效的遍历HashMap 以及对key 进行排序


     Map<Integer ,Object> map = new HashMap<Integer,Object>();
               for(int i = 0; i<=100;i++){
                   map.put(i,i);
               }
     Iterator<Entry<Integer, Object>> iterator = map.entrySet().iterator();
              while(iterator.hasNext()){
                  Map.Entry<Integer ,Object> entry = (Entry<Integer ,Object>)iterator.next();
                  Object key = entry.getKey();
                  Object value = entry.getValue();
                  
                  }
    第一种: 
    Map map = new HashMap(); 
    Iterator iter = map.entrySet().iterator(); 
    while (iter.hasNext()) { 
        Map.Entry entry = (Map.Entry) iter.next(); 
        Object key = entry.getKey(); 
        Object val = entry.getValue(); 

    效率高,以后一定要使用此种方式! 
    第二种: 
    Map map = new HashMap(); 
    Iterator iter = map.keySet().iterator(); 
    while (iter.hasNext()) { 
        Object key = iter.next(); 
        Object val = map.get(key); 

    效率低,以后尽量少使用! 

     

    关于hashmap 按value排序

      最近开发中用到了HashMap ,而且想到要利用其value的大小排序。。真是个伤脑筋的问题。
    还好,经过查阅各个地方的资料。发现这个下边的代码处理是最简单有效的。代码很少,却达到目的了。
    一般我坚持的一个原则的是:能简单处理的,尽量不做复杂工作。
    关键代码部分如下:
    HashMap map_Data=new HashMap();
        map_Data.put("A", "98");
        map_Data.put("B", "50");
        map_Data.put("C", "50");
        map_Data.put("D", "25");
        map_Data.put("E", "85");
        System.out.println(map_Data);
        List<Map.Entry<String, String>> list_Data = new ArrayList<Map.Entry<String, String>>(map_Data.entrySet());
        Collections.sort(list_Data, new Comparator<Map.Entry<String, String>>()
          {  
              public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2)
              {
               if(o2.getValue()!=null&&o1.getValue()!=null&&o2.getValue().compareTo(o1.getValue())>0){
                return 1;
               }else{
                return -1;
               }
                 
              }
          });
        System.out.println(list_Data);
    主要的一个知识点在这个Collections.sort(list,Comparator接口实现)地方,而最最重要核心部分是这个Comparator实现
  • 相关阅读:
    JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。
    linux每日命令(28):chgrp命令
    linux每日命令(27):chmod命令
    linux每日命令(26):Linux文件属性详解
    linux每日命令(25):Linux文件类型与扩展名
    linux每日命令(24):Linux 目录结构
    linux每日命令(23):find命令之xargs
    linux每日命令(22):find命令参数详解
    linux每日命令(21):find命令之exec
    linux每日命令(20):find命令概览
  • 原文地址:https://www.cnblogs.com/wanglichaoya/p/10217307.html
Copyright © 2020-2023  润新知