📅  最后修改于: 2023-12-03 15:15:56.096000             🧑  作者: Mango
MultiMap
是Guava库中的一个数据结构,它可以将多个值映射到一个键上。它提供了一种方便的方法来处理键-值关系,以及可以让程序员更加容易地管理关于同一键的多个值。Guava中的MultiMap
有两种实现方式,分别是ArrayListMultimap
和HashSetMultimap
。
以下是使用ArrayListMultimap
创建和操作多重映射的示例代码:
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class MultiMapExample {
public static void main(String[] args) {
Multimap<String, String> multiMap = ArrayListMultimap.create();
// 添加键-值对
multiMap.put("a", "1");
multiMap.put("a", "2");
multiMap.put("a", "3");
multiMap.put("b", "4");
multiMap.put("b", "5");
multiMap.put("c", "6");
// 获取键-值对的数量
System.out.println("Key-Value Pair Count: " + multiMap.size());
// 获取所有键
System.out.println("Keys: " + multiMap.keys());
// 获取指定键的所有值
System.out.println("Values for Key 'a': " + multiMap.get("a"));
// 移除指定键的所有值
multiMap.removeAll("a");
System.out.println("Key-Value Pair Count after Removing Values for Key 'a': " + multiMap.size());
// 判断是否包含指定的键-值对
boolean hasKeyValuePair = multiMap.containsEntry("b", "4");
System.out.println("MultiMap Contains Key-Value Pair 'b' -> '4': " + hasKeyValuePair);
// 获取所有键-值对
System.out.println("All Key-Value Pairs: " + multiMap.entries());
}
}
输出结果如下所示:
Key-Value Pair Count: 6
Keys: [a x 3, b x 2, c]
Values for Key 'a': [1, 2, 3]
Key-Value Pair Count after Removing Values for Key 'a': 3
MultiMap Contains Key-Value Pair 'b' -> '4': true
All Key-Value Pairs: [a=1, b=4, c=6, a=2, b=5, a=3]
MultiMap
是Guava库中一个非常有用的数据结构,它可以让程序员更加容易地处理键-值关系并管理同一键的多个值。在处理数据时,如果你需要使用多个值映射到一个键上,那么使用MultiMap
将会是一个不错的选择。