BiMap的 google Guava工程 中的 扩展的map

1、BiMap 也是基本的 map 集合结构, 由key value 构成.

2、区别于 Map 是双向关联结构,

3、可以通过 key 查询 value, 也可以 通过 value 查询 key;

4、因此, 这种集合 不允许 value 重复, 否则会抛出异常IllegalArgumentException: value already present: value

5、key 和 value 都允许为空 null ;

常用的方法

BiMap.create()

  1. 创建一个 长度 为16 的集合;
BiMap biMap = HashBiMap.create();

inverse() 翻​转方法

  1. 翻转 map 集合 key value 数据;
  2. 翻转返回的是一个新的视图, 当修改的时候 会修改 会相关影响;
BiMap biMap = HashBiMap.create();
biMap.put("a", "1");
biMap.put("b", "2");
// {a=1, b=2}
BiMap inverse = biMap.inverse();
// {1=a, 2=a}
inverse.put("2", "c");
// {a=1, c=2}
// {1=a, 2=c}

forcePut() 重复的value 覆盖

  1. 当使用 put 方法 重复的value 的时候, 会报错;
  2. 使用 forcePut() 方法可以 覆盖 相同 value 的key
BiMap biMap = HashBiMap.create();
biMap.put("a", "1");
biMap.put("b", "2");
// {a=1, b=2}
biMap.forcePut("c", "2");
// {a=1, c=2}

values() 获得 value 的set 集合

BiMap biMap = HashBiMap.create();
biMap.put("a", "1");
biMap.put("b", "2");
biMap.put("", null);
Set values = biMap.values()
System.out.println(values);
//[1, 2, null]