HashMap通过value反查key

简介: 这是今天做了一道字符串的问题,一直MLE,所以想到了减少Map里对应关系数量来降低内存开销。随手谷歌,整理出了如下资料。       如果效率优先的话还是写俩Map吧。 import java.

        这是今天做了一道字符串的问题,一直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
 
目录
相关文章
|
存储 开发者
HashMap和Hashtable的key和value可以为null吗,ConcurrentHashMap呢
HashMap的key可以为null,value也可以为null;Hashtable的key不允许为null,value也不能为null;ConcurrentHashMap的key不允许为null
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
|
存储
HashMap HashTable ConcurrentMap 中key value是否可以为null
HashMap HashTable ConcurrentMap 中key value是否可以为null
294 0
HashMap,你是怎么做到的Key重复?
HashMap,你是怎么做到的Key重复?
|
算法 Java 程序员
Java HashMap 在获得 Key 的 Hash 值的时候用的是什么算法
Java 在 HashMap Key 的 Hash 值的时候用的的是自己 Object 中的 hashCode() 算法。
330 0
|
存储 Java
为什么不建议使用实数作为 HashMap 的 key?
为什么不建议使用实数作为 HashMap 的 key?
377 0
|
存储 Java
Java - HashMap 的 key 更改后能否正确获取 value?
Java - HashMap 的 key 更改后能否正确获取 value?
546 0
HashMap遍历所有的key和value
HashMap遍历所有的key和value
957 0