`
ajax_xu
  • 浏览: 155931 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

HashMap:通过VALUE反向求KEY的方法

阅读更多
我们知道HashMap中的值是成对地放置的,即VALUE-KEY.因此我们一般在MAP中取出数据时得根据KEY来取出VALUE.但若我们想出VALUE值,但却不知对应地KEY,这时我们就得先遍历VALUE值,找出对应地KEY值,再根据KEY值取出VALUE值.程序如下:

Java代码
import java.util.*;   
public class Map_ValueGetKey {   
HashMap map;   
public Map_ValueGetKey(HashMap map) {                    //初始化操作   
  this.map=map;   
}   
  
public Object getKey(Object value) {   
   Object o=null;   
   ArrayList all=new ArrayList();    //建一个数组用来存放符合条件的KEY值   
  
  
/* 这里关键是那个entrySet()的方法,它会返回一个包含Map.Entry集的Set对象. Map.Entry对象有getValue和getKey的方法,利用这两个方法就可以达到从值取键的目的了 **/     
  
Set set=map.entrySet();   
   Iterator it=set.iterator();   
  while(it.hasNext()) {   
    Map.Entry entry=(Map.Entry)it.next();   
   if(entry.getValue().equals(value)) {   
     o=entry.getKey();   
     all.add(o);          //把符合条件的项先放到容器中,下面再一次性打印出   
    }   
   }   
  return all;   
}   
public static void main(String[] args) {   
   HashMap map=new HashMap();   
   map.put("1","a");   
   map.put("2","b");   
   map.put("3","c");   
   map.put("4","c");   
   map.put("5","e");   
   Map_ValueGetKey mvg=new Map_ValueGetKey(map);   
   System.out.println(mvg.getKey("c"));   
   }   
  
}  
分享到:
评论

相关推荐

    HashMap通过VALUE反向求KEY的方法

    总结来说,这段代码展示了如何在HashMap中通过值来查找键,这通常需要遍历整个HashMap的Entry集合,并使用Map.Entry的`getValue()`和`getKey()`方法进行比较。虽然这种方法在大数据量的情况下效率较低,但在某些场景...

    java遍历HashMap简单的方法

    本篇文章将详细介绍如何使用简单的方法来遍历HashMap,通过实例代码帮助理解。 HashMap遍历的常用方法主要有三种:迭代器(Iterator)遍历、键集(KeySet)遍历以及 Entry 集(entrySet)遍历。下面将逐一介绍这些...

    DoubleAccessMap:可以通过使用值访问KeySet的HashMap

    这个数据结构的独特之处在于它不仅允许我们通过键(key)来查找值(value),还允许我们通过值(value)来查找键(key)。在标准的HashMap中,查找键对应的值是常见的操作,但查找具有特定值的所有键则不太常见,而...

    Java基础学习22.pdf

    - **内部实现**: HashMap使用哈希表(散列表)存储键值对,通过哈希函数计算键的哈希码,再通过链表或红黑树解决哈希冲突。 - **哈希冲突**: 当两个键的哈希码相同,它们会位于同一个桶中,形成链表。当链表长度...

    springboot工程中使用ObjectMapper解析JSON字符串

    String jsonMapString = "{\"key1\":\"value1\",\"key2\":\"value2\"}"; Map, Object> map = mapper.readValue(jsonMapString, Map.class); ``` 以上就是使用Spring Boot中的ObjectMapper进行JSON处理的基本方法。...

    主要用于操作json的工具JAR

    本教程主要围绕“主要用于操作json的工具JAR”,解决在Java中将List转换为JSONObject、JSONArray以及反向转换的问题。 首先,让我们了解JSON的基本结构。JSON对象以大括号{}表示,其中包含键值对,键和值之间用冒号...

    json转换需要依赖的jar包

    除了`JSONObject.fromObject`,`json-lib`还提供了`JSONArray.fromObject`,用于将Java对象数组或集合转换为`JSONArray`,以及`JSONObject.toBean`和`JSONArray.toList`等方法,支持反向转换,即将JSON数据转化为...

    使用 SharedPreferences 存取复杂类型的数据

    SharedPreferences是通过键值对的形式存储数据的,通过`PreferenceManager.getDefaultSharedPreferences(Context)`获取默认的SharedPreferences实例,然后使用`edit()`方法创建一个可编辑的`SharedPreferences....

    Java基础试题及其答案.docx

    6. **数据存储结构**:在Java中,`HashMap`类用于以键值对(key-value)的形式存储数据。 7. **三目运算符**:Java中的三目运算符`condition ? expression1 : expression2`用于根据条件表达式的布尔值选择执行其中一...

    hibernate map 集合映射

    在这个例子中,`PROPERTY_KEY`作为Map的键,`PROPERTY_VALUE`作为Map的值,`USER_ID`是关联的外键。 ### 6. 性能优化 在使用集合映射时,需要注意懒加载(lazy loading)和批处理(batch-size)的设置,以优化性能...

    课程讲解文档

    通过以上介绍可以看出,DWR是一个非常强大且灵活的Ajax框架,它不仅简化了Ajax的使用,还提供了多种高级功能,如直接调用Java方法、复杂的对象传递、Session管理以及反向推送等。开发者可以根据实际需求选择合适的...

    蚂蚁金服面经.pdf

    它由数组和链表组成,通过哈希函数定位元素,允许key为null,但value不能为null。在多线程环境中,应使用`ConcurrentHashMap`保证线程安全。 5. **InnoDB 和 MyISAM**: - `InnoDB` 支持事务处理,提供行级锁定和...

    基于Java的YAML解析器 SnakeYAML.zip

    map.put("key", "value"); String yamlStr = yaml.dump(map); // 写入文件 OutputStream outputStream = ...; // 输出流 yaml.dump(map, outputStream); ``` ### 4. SnakeYAML的扩展与自定义 - **自定义构造器**...

    json-lib-2.3.jar

    特别是对于`List, String>>`这样的数据结构,它能够将一系列键值对映射的列表转换成JSON数组,每个元素都是一个JSON对象,其键和值分别对应Map中的key和value。这样做的好处在于,可以将复杂的数据结构转换成符合...

    json-lib及其依赖的包

    String jsonString = "{\"key\":\"value\"}"; JSONObject jsonObject = JSONObject.fromObject(jsonString); Map, Object> map = (Map, Object>) jsonObject.toMap(); ``` 4. **Bean转换**:JSON-lib还支持Java...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 apache网站下下载 在这是junit测试单元类我就不提交了,在main()方法中有几个小...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    1.3.2跨域交互即缓存处理方法 7 1.3.3页面自适应机制,即设备自适应与浏览器自适应机制 8 1.3.4 “认我测”质检服务平台的设计和实现 8 1.4 本文的结构安排 8 第二章 多窗口类浏览器设计 11 2.1 多窗口类浏览器需求...

Global site tag (gtag.js) - Google Analytics