zoukankan      html  css  js  c++  java
  • HashMap通过value反查key

            这是今天做了一道字符串的问题,一直MLE,所以想到了减少Map里对应关系数量来降低内存开销。随手谷歌,整理出了如下资料。

          如果效率优先的话还是写俩Map吧。

    import java.util.ArrayList;
    
    import java.util.HashMap;
    
    import java.util.Iterator;
    
    import java.util.Map;
    
    import java.util.Set;
    
    public class MapValueGetKey {
    
      public static void main(String[] args) {
    
        Map map = new HashMap<>();
    
        map.put(1,"A");
    
        map.put(2,"A");
    
        map.put(3,"A");
    
        map.put(4,"A");
    
        map.put(5,"A");
    
        
    
        String value = "A";
    
        ArrayList arr = valueGetKey(map, value);
    
        if(!arr.isEmpty()) {
    
          for(int i=0; i<arr.size(); i++) {
    
            System.out.println(arr.get(i));
    
          }
    
        }
    
        
    
      }
    
      private static ArrayList valueGetKey(Map map,String value) {
    
        Set set = map.entrySet();
    
        ArrayList arr = new ArrayList<>();
    
        Iterator it = set.iterator();
    
        while(it.hasNext()) {
    
          Map.Entry entry = (Map.Entry)it.next();
    
          if(entry.getValue().equals(value)) {
    
            int s = (int)entry.getKey();
    
            arr.add(s);
    
          }
    
        }
    
        return arr;
    
      }
    
    }
    

            结果如下:

    1
    
    2
    
    3
    
    4
    
    5
    
  • 相关阅读:
    nginx基础系列
    常用MS-SQL写法整理
    Spring Bean装配方式
    sql获取该周的开始结束日期
    Docker基础入门实践
    vim常规操作
    基于CentOS的SSHD服务的Docker镜像
    RedisClient For .Net
    Redis数据类型及使用场景
    CentOS下安装Redis
  • 原文地址:https://www.cnblogs.com/hxsyl/p/3256019.html
Copyright © 2011-2022 走看看