HashMap通过value反查key

HashMap通过value反查keyPosted on

        这是今天做了一道字符串的问题,虚拟主机,美国空间,一直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 { 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; }}

        结果如下:

12345

如果说对云南有进一步的了解的话就是鲜花。

HashMap通过value反查key

相关文章:

你感兴趣的文章:

标签云: