简体   繁体   English

使用同一个键添加多个值以进行映射?

[英]Add multiple values to map using same key?

This is what I have so far 这就是我到目前为止

Map<String, String> courses = new HashMap();
courses.put("Teachers","adam");

so how do I add more teachers using the same key 所以我怎么用相同的键添加更多的老师

You can use Map<String, ArrayList<String>> . 您可以使用Map<String, ArrayList<String>> Then add additional information by doing map.get("Teachers").add("Bob") 然后通过执行map.get("Teachers").add("Bob")添加其他信息

You can benefit from computeIfAbsent : 您可以从computeIfAbsent中受益:

Map<String, List<String>> courses = new HashMap<>();
courses.computeIfAbsent("Teachers", k -> new ArrayList<>()).add("adam");

if you can use google guava, Interface Multimap<K,V> is a good way to do this,and all opereation is simple。 如果可以使用Google番石榴, Interface Multimap<K,V>是执行此操作的好方法,并且所有操作都很简单。

To add a dependency on Guava using Maven, use the following: 要使用Maven添加对Guava的依赖关系,请使用以下命令:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>27.0.1-jre</version>
  <!-- or, for Android: -->
  <version>27.0.1-android</version>
</dependency>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM