【java代码之美】---guava之Bimap
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【java代码之美】---guava之Bimap,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1656字,纯文字阅读大概需要3分钟。
内容图文
![【java代码之美】---guava之Bimap](/upload/InfoBanner/zyjiaocheng/1110/2d48a5dde3f344f3be2bcf45bcb891db.jpg)
guava之Bimap
bimap的作用很清晰:它是一个一一映射,可以通过key得到value,也可以通过value得到key。
一、概述
1、bimap和普通HashMap区别
(1)在Java集合类库中的Map,它的特点是存放的键(Key)是唯一的,而值(Value)可以不唯一,而
bimap要求key和value都唯一,如果key不唯一则覆盖key,如果value不唯一则直接报错。
2、案例展示
public class bimapTest { public static void main(String args[]){ // 双向map BiMap<Integer,String> biMap=HashBiMap.create(); biMap.put(1,"张三"); biMap.put(2,"李四"); biMap.put(3,"王五"); biMap.put(4,"赵六"); biMap.put(5,"李七"); biMap.put(4,"小小"); //通过key值得到value值(注意key里面的类型根据泛行 String value= biMap.get(1); System.out.println("id为1的value值 --"+value); //通过value值得到key值int key= biMap.inverse().get("张三"); System.out.println("张三key值 --"+key); //通过key值重复,那么vakue值会被覆盖。 String valuename= biMap.get(4); System.out.println("id为4的value值 --"+valuename); } } /*运行结果: *id为1的value值 --张三 *张三key值 --1 *id为4的value值 --小小 */
如果value值重复,则运行直接报错如下:
biMap.put(6,"小小"); /**后台直接报错 * Exception in thread "main" java.lang.IllegalArgumentException: value already present: 小小 * at com.google.common.collect.HashBiMap.put(HashBiMap.java:285) * at com.google.common.collect.HashBiMap.put(HashBiMap.java:260) * at com.jincou.stream.study.bimapTest.main(bimapTest.java:40) */
如果你想value也发生覆盖key值,那么可以:
// inverse方法会返回一个反转的BiMap,但是注意这个反转的map不是新的map对象,它实现了一种视图关联,这样你对于反转后的map的所有操作都会影响原先的map对象。 biMap.forcePut(6,"小小"); int key6= biMap.inverse().get("小小"); System.out.println("小小key值 --"+key6);
/**后台输出(已经把:biMap.put(4,"小小"覆盖) * * 小小key值 --6 */
3、Bimap实现类
BiMap的常用实现有:
1、HashBiMap: key 集合与 value 集合都有 HashMap 实现
2、EnumBiMap: key 与 value 都必须是 enum 类型
3、ImmutableBiMap: 不可修改的 BiMap
想太多,做太少,中间的落差就是烦恼。想没有烦恼,要么别想,要么多做。中校【16】
原文:https://www.cnblogs.com/qdhxhz/p/9425039.html
内容总结
以上是互联网集市为您收集整理的【java代码之美】---guava之Bimap全部内容,希望文章能够帮你解决【java代码之美】---guava之Bimap所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。