BiMap_的基本介绍和使用


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

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

介绍BiMap

  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]

版权声明:本文为qq_36209121原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。