HashMap根据value获取key

java中HashMap如何根据value的值去获取key是多少 在Java中,HashMap是一种基于键值对存储数据的数据结构。HashMap并没有直接提供根据value获取key的方法。但你可以通过遍历HashMap的entrySet,找到对应的value,然后获取其对应的key。你可以传入一个HashMap和一个value,这个方法会遍历HashMap的entrySet,找到第一个匹配的value,并返回对应的key。如果不存在匹配的value,会返回null。 阅读详情

Map中是一个key有且只有一个value.

但是一个value可以对应多个key值.

一般都是通过key,然后map.get(key)获得到value.

如果想要反向想通过value获得key的值,提供一下两种方法:

方法一:

package cn.itcast.mapgetkey;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class HashMapDemo {
    //根据value值获取到对应的一个key值
    public static String getKey(HashMap<String,String> map,String value){
        String key = null;
        //Map,HashMap并没有实现Iteratable接口.不能用于增强for循环.
        for(String getKey: map.keySet()){
            if(map.get(getKey).equals(value)){
                key = getKey;
            }
        }
        return key;
        //这个key肯定是最后一个满足该条件的key.
    }
    
    //根据value值获取到对应的所有的key值
    public static List<String> getKeyList(HashMap<String,String> map,String value){
        List<String> keyList = new ArrayList();
        for(String getKey: map.keySet()){
            if(map.get(getKey).equals(value)){
                keyList.add(getKey);
            }
        }
        return keyList;
    }
    
    public static void main(String[] args) {
        HashMap<String,String> map = new HashMap();
        map.put("CHINA", "中国");
        map.put("CN", "中国");
        map.put("AM", "美国");
        //获取一个Key
        System.out.println("通过value获取Key:"+getKey(map,"中国"));//输出"CN"
        System.out.println("通过value获取Key:"+getKey(map,"美国"));//输出"AM"
        //获得所有的key值
        System.out.println("通过value获取所有的key值:"+getKeyList(map,"中国"));//输出"[CHINA, CN]"
        
    }
}

 

方法二:

package cn.itcast.mapgetkey2;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapValueGetKey {
    HashMap<String, String> map = null;

    public MapValueGetKey(HashMap<String, String> map) {
        this.map = map;
    }

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("1", "a");
        map.put("2", "b");
        map.put("3", "c");
        map.put("4", "c");
        map.put("5", "e");
        MapValueGetKey mapValueGetKey = new MapValueGetKey(map);
        System.out.println(mapValueGetKey.getKey("c"));//输出[3, 4]
    }

    private ArrayList<String> getKey(String value) {
        ArrayList<String> keyList = new ArrayList<String>();
        String key = null;
        Set<Entry<String, String>> set = map.entrySet();// entrySet()方法就是把map中的每个键值对变成对应成Set集合中的一个对象.
        // set对象中的内容如下:[3=c, 2=b, 1=a, 5=e, 4=c]
        Iterator it = set.iterator();
        while (it.hasNext()) {
            Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
            // entry中的内容就是set集合中的每个对象(map集合中的一个键值对)3=c....
            // Map.Entry就是一种类型,专值map中的一个键值对组成的对象.
            if (entry.getValue().equals(value)){
                key = (String) entry.getKey();
                keyList.add(key);
            }
        }
        return keyList;
    }
}

 

HashMap通过VALUE反向求KEY的方法 HashMap中的值是成对地放置的,即VALUE-KEY.因此我们一般在MAP中取出数据时得根据KEY来取出VALUE.但若我们想出VALUE值,但却不知对应地KEY,这时我们就得先遍历VALUE值,找出对应地KEY值,再根据KEY值取出VALUE值 立即下载

相关推荐

HashMap根据value获取key值

Map集合的特性:一个key值对应一个value值,key值保持着唯一性,而插入的键值对相同key值会发生覆盖原key值对应的value值。 Map集合中一个key对应一个value,但是一个相同的value值可以对应多个key值 下面我们来根据value获取key,根据key获取value(1.foreach循环遍历 2.迭代器遍历) 举一个例子会更生动! 题目 创建一个Map集合,在集合中放入年份、世界杯冠军获得的国家。存储的键值对例如:“1994”,“巴西”;“1962”,“巴西”;(key存储年份,value存储国家球队) 1、从命令行中读入一个字符串,表示年份,输出该年的世界杯冠军是

Java HashMap根据value获取key

根据Map的定义,我们可以知道Map是一组键值对,且key是唯一的,对应的value有且只有一个,但是相同的value可能对应不同的key。如果我们想通过key获取value,可以map.get(key)获得value。而如果需要通过value获取对应的key,则需要自己实现对应的方法。 下面,提供两种方法实现此需求。 方法1:public static Object getKey(Map ma

u014259820的博客 8万+

HashMap中如何由value得到key

举例说明:map中存放五个同学的身高,张三-170, 李四-175 ,王五-180, 赵六-175, 朱七180,现在要获得身高为180的同学姓名。通过HashMap我们可以以O(1)时间复杂度快速由key得到value,那如何由value得到key?

m0_49864580的博客 726

三电平逆变器LC滤波设计避坑指南:从SVPWM谐波到Simulink仿真验证

本文详细解析了三电平逆变器LC滤波设计中的关键问题,从SVPWM谐波特性到Simulink仿真验证,提供了800V/10kW系统的参数计算方法和优化技巧。通过实际案例和仿真配置示例,帮助工程师避免常见设计误区,提升电能质量和系统稳定性。

weixin_29261711的博客 173

Ubuntu本地部署CodeX编程助手:CLI配置全指南

本地AI编程助手是当前开发者关注的核心技术趋势,指在不依赖云端API、保障代码隐私前提下,于本地环境运行具备代码理解、多语言补全与知识库检索能力的智能辅助工具。其技术原理涉及模型加载、API网关编排、向量数据库集成及系统级资源调度,关键价值在于可控性、低延迟与合规性。典型应用场景包括企业内网DevOps提效、边缘设备嵌入式开发支持,以及敏感代码场景下的离线编程增强。本文聚焦Ubuntu系统下基于CLI的手动配置路径,深入解析Ollama服务注册、Node.js版本锁定、API Key环境隔离及Qwen2.5

weixin_26804345的博客 593

关于HashMap根据Value获取Key

Map 中是一个 key有且只有一个value,但是一个value可以对应多个key值,一般都是通过key,然后map.get(key)获得value,如果想要反向value获得key的值,提供以下两种方法: 方法一: public class HashMapDemo { //根据value值获取到对应的key值 public static String getKey(HashMap<String, String> map, String value) { S.

m0_47073109的博客 5135

【WiFi软件开发】IOCTL和Netlink----用户空间和内核空间交互的两种方式

linux开发中通常会涉及用户空间和内核模块的交互。本文介绍了两种典型的用户空间和内核模块通信方式:ioctl和netlink

liuwe1ye的博客 2347

java map通过value获取key_关于HashMap根据Value获取Key

Map中是一个key有且只有一个value.但是一个value可以对应多个key值.一般都是通过key,然后map.get(key)获得到value.如果想要反向想通过value获得key的值,提供一下两种方法:方法一:1 package cn.itcast.mapgetkey;23 import java.util.ArrayList;4 import java.util.HashMap;5 i...

weixin_39613548的博客 2979

DSP(数字信号处理器)技术概要

数字信号处理器(digital signal processor,DSP)是一种用于数字信号处理的可编程微处理器,它的诞生与快速发展,使各种数字信号处理算送得以实时实现,为数字信号处理的研究和应用打开了新局面,提供了低成本的实际工作环境和应用平台,推动了新的理论和应用领域的发展。目前,DSP技术在通信、航空、航天。雷达、工业控制、医疗、网络及家用电器等各个领域都得到了广泛应用。 1.1 DSP系统和芯片的结构特点1.1.1 DSP系统的基本结构通过传感数将非电物理量转换为模拟电信号,预处理一般包括放大器和滤

m0_46582485的博客 2万+

科技与伦理的平衡点:人类计算的伦理

科技与伦理的平衡点:人类计算的伦理 关键词 科技与伦理 人类计算 隐私问题 道德决策自动化 公平性与偏见 法律与社会责任 摘要 本

AI天才研究院 1162

【HashMap】根据value获取key

Collections values = map.values(); map.values()返回HashMap的value视图集合 获取该value对应的所有key keySet private static List<String> getToKeyI(Map<String, String> map, String value) { List<String> keyList = new ArrayList<>(); for (Strin

iqqcode 1966

03 Token、Embedding、上下文窗口:开发者必须懂的三个基本概念

Token、Embedding 和上下文窗口是大模型应用开发的三个基础概念。本文从成本、速度、检索和上下文设计四个角度讲清它们的工程意义,帮助开发者理解为什么同一段内容会超限、变贵,为什么 RAG 能做语义检索。

老于的笔记的专栏 407

HashMap 根据Value获取Key

package com.other; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class HashMapDemo { //获取一个Key public static Object getKey(HashMap hm,String value){

凉粉 4187

CryoEM - 使用 ChimeraX 工具 操作 冷冻电镜的 MRC 密度图(Density Map) 教程

由冷冻电镜 CryoSparc 软件所生成的 Volume,需要观察其内部结构,建议使用 ChimeraX 进行操作。

AGI 4959

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

HashMap中根据Value值,来获取对应的key值

要新年了,提前祝大家新年快乐,一帆风顺,万事如意,阖家欢乐! 上一篇文章中已经说过:HashMap的参数的拼接 http://blog.youkuaiyun.com/willba/article/details/79268387 这篇主要是说 根据特定的Value值,获取对应的key值,如下 //封装假数据 HashMapString,String> map = new HashMap(); map.

willba的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: Git SSH密钥对生成以及多个SSH存在情况配置
下一篇: 微信公众平台开发——微信授权登录(OAuth2.0)
rmnjava
博客等级 码龄20年 8粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值