Map;lt;String, Strinp;gt; map = new HashMap;lt;String, Strinp;gt;();

map.put("1","xyz");

map.put("1","abc");

map.put("1","cde");

map.put("2","err");`

`

对于上面的地图,我想获取与键1.关联的所有值。预期输出。

密钥:: 1个值是:: xyz,abc,cde

值的顺序并不重要。

如果您需要密钥已失效(甚至不知道原因),请重新考虑使用另一个Collection。

您可能需要一个多图-docs.guava-libraries.googlecode.com/git/javadoc/com/google/

首先,您需要了解HashMap的概念及其内部生活。 我建议您在我的教程中介绍所有这些内容!

在地图中,键应始终为unique。如果将新值与现有键相关联,它将覆盖现有条目的值。

您可能需要检查接口的Map#put(K,V)方法。

If the map previously contained a mapping for the key, the old value

is replaced by the specified value.

因此,在您的情况下,地图始终将"cde"作为键"1"的值。

使用MultiMap

MultiMap mapValue = new MultiValueMap();

mapValue.put("1","xyz");

mapValue.put("1","abc");

mapValue.put("1","cde");

mapValue.put("2","err");

System.out.println("Map :" + mapValue);

输出:Map : {2=[err], 1=[xyz, abc, cde]}

映射不能有重复的键。

如果您想实施所描述的内容。首先,您需要使用多图

你在做什么错了。

地图不允许重复。

所以一键----------->一个值

如果您看到put()的文档

Associates the specified value with the specified key in this map (optional operation). If the map previously contained a mapping for the key, the old value is replaced by the specified value. (A map m is said to contain a mapping for a key k if and only if m.containsKey(k) would return true.)

您可以像下面一样打印每个key和value的值

Ex:

Map;lt;String, Strinp;gt; map = new HashMap;lt;String, Strinp;gt;();

for (Map.Entrp;lt;String, Strinp;gt; entry : map.entrySet()) {

System.out.println("Key =" + entry.getKey() +", Value =" + entry.getValue());

}

您可以执行以下操作:

for (String k : map.keySet())

System.out.println(k);

这会在HashMap中打印键,但不能保证任何顺序。

从有关HashMap.put(K key,V value)方法的Java文档中:

Associates the specified value with the specified key in this map. If the map previously contained a mapping for the key, the old value is replaced.

所以你不能那样做。

HashMap :: put覆盖与键关联的旧值。您必须在每个地图条目中放置一个列表,然后在适当的列表中插入新值。

您无法使用这种类型的地图执行此操作。地图中的键必须是唯一的。

为此,您应该声明一个映射,其中的键是字符串,而值是字符串的集合。

Map;lt;String,Collectiop;lt;Strinp;gtp;gt; map = new HashMap;lt;String,Collectiop;lt;Strinp;gtp;gt;();

要列出它的值,您可以执行此操作

for(String valueOfKey : map.get("key") {

//print or something else

}

请注意,要向其中添加一些值,您必须首先检查密钥是否已存储,如果尚未存储,则首先声明一个集合。

if(map.contains("key") == false) {

map.put(new ArrayLisp;lt;Strinp;gt;());

}

map.get("key").add("value");

因为这是众所周知的设计,所以您可能对guava框架和Multimap感兴趣

该类的好处是它已经实现了如何添加逻辑和从中检索值的逻辑。

在地图中,您不能有重复的键。因此,根据您的情况,键1的最终值将保留在" map"中。

您可以执行以下操作来达到您的期望

Map> map = new HashMap<>();

List list=new ArrayList<>();

List list1=new ArrayList<>();

list.add("xyz");

list.add("abc");

list.add("cde");

list1.add("err");

map.put("1", list);

map.put("2",list1);

System.out.println(map.get("1"));

这是不可能的,因为将一个键值映射到一个值,所以将其称为映射。多个键可以映射到相同的值,但不能相反。

您可能想要的是一个映射到List的映射:

final Map> map = new HashMap<>();

if (map.get("1") == null) {

map.put("1", new ArrayList());

}

map.get("1").add("xyz");

// ...

用于添加的辅助功能可能很方便

public static void add(final K key, final V value, final Map> map)

{

if (map.get(key) == null) {

map.put(key, new ArrayList());

}

map.get(key).add(value);

}

您不能为哈希映射使用重复键,请参阅以下S.O,了解HashMap中重复键的处理方式

java hashmap value值_如何在Java中的HashMap中打印键的所有值相关推荐

  1. java 反射父类私有属性值_如何在Java中通过反射访问父类的父类的私有字段? - java...

    在一个API中,我使用的是一个抽象类(A类),该类具有一个私有字段(A.privateField). B类在API中扩展了A类. 我需要扩展B类的实现,即C类,但是我需要A类的privateField ...

  2. java aes密钥生成_如何在Java(Android)中生成与.Net中相同的AES密钥?

    我需要从.Net WebService提供的salt和密码生成 Java( Android)中的AES密钥.我需要使用与.net生成的密钥相同的密钥和相同的密码和盐(使用Rfc2898DeriveBy ...

  3. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  4. Java poi 列移动_如何在java xssf中移動列poi

    如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...

  5. java 精确到微妙_如何在Java中以微秒精度测量时间?

    我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...

  6. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  7. java panel画椭圆_如何在Java 2D中绘制椭圆?

    在Ellipse2D类定义由成帧矩形定义的椭圆.您可以使用double或float值创建椭圆.使用双精度值创建椭圆时,请使用Ellipse2D.Double类.对于浮点值,您可以使用Ellipse2D ...

  8. java 方法当参数_如何在Java中将函数作为参数传递?

    如何在Java中将函数作为参数传递? 这个问题在这里已有答案: Java Pass方法作为参数                                     14个答案 是否可以将方法作为参 ...

  9. java 千位分隔符_如何在Java中设置千位分隔符?

    问题 如何在Java中设置千位分隔符?我有BigDecimal的String表示,我想设置千位分隔符并返回String. #1 热门回答(180 赞) 你可以使用格式功能","; ...

  10. java 判断是否换行_如何在java中检测换行符

    是的,我已经阅读了一些关于换行符的其他帖子,但他们没有帮助我.如何在java中检测换行符 我的Java程序应该读取一个.PHP文件,并将源代码分成逐行格式.问题是我似乎无法区分一个换行符和另一个换行符 ...

最新文章

  1. 微软.net一些类的源码
  2. SQL Server中Rollup关键字使用技巧 (转)
  3. apache+tomcat​现在我们实现session共享
  4. Java事务处理全解析(二)——失败的案例
  5. Log4Net简单使用
  6. OpenStack 计算节点删除
  7. ASP.NETCore编程实现基本认证
  8. 工作162:选择日期自传父
  9. abd shell关闭所有程序_第十六章 Shell编程
  10. docker container
  11. jenkins 插件目录_Windows下allure+pytest+jenkins集成手册!
  12. c语言链表复数,[蓝桥杯][算法提高VIP]复数求和-链表初学者看过来(C语言代码)...
  13. 通过iMazing将Safari浏览器的书签导出至电脑
  14. Arduino Atmega328P烧写bootloader及熔丝
  15. 计算机无线网络计算机文件共享,无线局域网共享_在同一个无线局域网内如何共享文件?...
  16. 2019东北四省 H. Skyscraper (树状数组)
  17. 二十四节气-寒露,月斜寒露白,此夕去留心
  18. kubernetes系列之一:Kubernetes如何利用iptables对外暴露service
  19. Word查找红色文字 Word查找颜色字体 Word查找突出格式文本
  20. 电子烟市场Juul来袭,锐刻福禄们该如何做防?

热门文章

  1. Microsoft® .NET Micro Framework简介
  2. VMware:虚拟化技术为运营商消除隐患
  3. Java练习 SDUT-1294_选票统计
  4. CentOS 6.5 yum安装mysql5.6或其他版本【默认yum只能安装mysql 5.1】 by jason
  5. html5 postMessage解决跨域、跨窗口消息传递[转载]
  6. S3C6410 SD卡启动uboot分析(详细)
  7. Windows服务器系统的端口要求
  8. Linux DRM 理解
  9. Linux电源管理-Runtime PM
  10. vs怎么设置php文件调试,使用vscode 编辑调试php 配置方与VSCode断点调试PHP