MultiValuedMap
是一个接口,通常用于表示一个键可以对应多个值的映射关系
以下是在 Java 中使用 MultiValuedMap
的一个简单示例:
import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
public class Main {
public static void main(String[] args) {
// 创建一个 MultiValuedMap 实例
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
// 添加键值对
map.put("key1", "value1");
map.put("key1", "value2");
map.put("key2", "value3");
// 获取键对应的所有值
List<String> valuesForKey1 = map.get("key1");
System.out.println("Values for key1: " + valuesForKey1);
// 遍历所有的键值对
for (String key : map.keySet()) {
System.out.println("Key: " + key);
for (String value : map.get(key)) {
System.out.println("Value: " + value);
}
}
}
}
在这个示例中,我们使用了 Apache Commons Collections 4 库中的 MultiValuedMap
接口和 ArrayListValuedHashMap
实现类。您需要添加以下依赖项到您的 Maven pom.xml
文件中:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
如果您不想使用外部库,那么可以使用 Java 9 及更高版本中的 MultiMap
接口的实现类,例如 HashMap
和 ArrayList
的组合。这里是一个简单的示例:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个 MultiValuedMap 实例
Map<String, List<String>> map = new HashMap<>();
// 添加键值对
map.computeIfAbsent("key1", k -> new ArrayList<>()).add("value1");
map.computeIfAbsent("key1", k -> new ArrayList<>()).add("value2");
map.computeIfAbsent("key2", k -> new ArrayList<>()).add("value3");
// 获取键对应的所有值
List<String> valuesForKey1 = map.get("key1");
System.out.println("Values for key1: " + valuesForKey1);
// 遍历所有的键值工
for (String key : map.keySet()) {
System.out.println("Key: " + key);
for (String value : map.get(key)) {
System.out.println("Value: " + value);
}
}
}
}
这个示例中,我们使用了 Java 内置的 Map
和 List
类来实现 MultiValuedMap
功能。这种方法不需要额外的依赖项,但代码可能稍微复杂一些。
实战低代码公开课直播专栏
云+社区沙龙online[数据工匠]
云+社区沙龙online [新技术实践]
Game Tech
Game Tech
Game Tech
Game Tech
一体化监控解决方案
领取专属 10元无门槛券
手把手带您无忧上云