这是今天做了一道字符串的问题,一直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;
}}结果如下:
12345
HashMap通过value反查key
转载作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:二分图最大匹配
下一篇:模拟退火求二维费马点
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
HashMap源码剖析
本文主要比较了jdk1.7和1.8中HashMap的put逻辑
HashMap 源码 -
HashMap遍历所有的key和value
四种方式遍历hashmap,面试官都馋哭了
hashmap 新特性 其他 -
HashMap遍历 Java hashmap遍历key和value
Map的遍历方式,常用的key-value遍历方式 在开发过程中经常会遇到 map 的遍历,本文将会介绍四种常用的 key-value 遍历方式
HashMap遍历 Java java System 迭代器 -
HashMap合并相同key的value
Java不能 通过简单的赋值来解决对象复制的问题,需要利用clone实现。
微信公众号 赋值 对象复制 java 大数据 -
android hashmap的value不重复 hashmap key重复
一、HashMap特性以及底层存储原理 1. 以key和value的形式存储,key不能重复,value可以重复。 2. HashMap的默认长度大小为16。 &nbs
hashmap linkedhashmap 循环链表 死锁 红黑树