在Java中,可以使用Guava库中的BiMap来创建和操作双向映射。BiMap是一个特殊的Map,可以确保值是唯一的,同时也可以通过值快速查找对应的键。
以下是一个简单的示例演示如何在Java中使用BiMap:
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
public class BiMapExample {
public static void main(String[] args) {
// 创建一个BiMap
BiMap<String, Integer> biMap = HashBiMap.create();
// 添加键值对到BiMap
biMap.put("one", 1);
biMap.put("two", 2);
biMap.put("three", 3);
// 通过键获取值
System.out.println(biMap.get("one")); // 输出: 1
// 通过值获取键
System.out.println(biMap.inverse().get(2)); // 输出: two
// BiMap的值是唯一的,如果添加重复的值会抛出异常
// biMap.put("four", 1); // 会抛出IllegalArgumentException
// 使用BiMap的forcePut方法可以覆盖已存在值的键
biMap.forcePut("four", 1);
// 输出BiMap的键值对
System.out.println(biMap); // 输出: {four=1, two=2, three=3}
}
}
在上面的示例中,我们使用了Guava库中的HashBiMap来创建一个BiMap实例,并演示了如何向BiMap中添加键值对,以及如何通过键或值来获取对应的值或键。BiMap确保值是唯一的,如果添加重复的值会抛出异常,但可以使用forcePut方法来覆盖已存在值的键。BiMap还提供了inverse方法来获取值到键的映射。