文档章节

Guava新集合-Bimap

Kevin-air
 Kevin-air
发布于 2016/08/05 11:07
字数 233
阅读 21
收藏 0

BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。

使用场景

通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是会需要通过value来查找key,那么就需要便利整个map才可以找到。Bimap可以获取其反转map进行双向关联操作。

import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import org.junit.Test;

/**
 * @author Kevin
 * @description
 * @date 2016/8/5
 */
public class BimapTest {

    @Test
    public void bimapTest() {
        BiMap<Integer,String> biMap = HashBiMap.create();
        biMap.put(1,"Kevin");
        biMap.put(2,"Han");
        biMap.put(3,"Chris");
        // 在使用BiMap时,会要求Value的唯一性
        // 如果value重复了则会抛出错误:java.lang.IllegalArgumentException
        //biMap.put(4,"Kevin");
        // 可强制覆盖之前的value值
        biMap.forcePut(4,"Kevin");
        System.out.println(biMap);

        // 反转map
        BiMap<String,Integer> inverseBimap = biMap.inverse();
        System.out.println(inverseBimap);

        // 修改源map,同时影响反转的map
        biMap.put(4,"Herry");
        System.out.println(biMap);
        System.out.println(inverseBimap);

        // 修改反转map,同时也影响源map
        inverseBimap.put("Nick",5);
        System.out.println(biMap);
        System.out.println(inverseBimap);
    }
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Guava新集合-Table
Kevin-air
粉丝 14
博文 73
码字总数 26587
作品 0
深圳
私信 提问
使用Google Guava快乐编程

目前Google Guava在实际应用中非常广泛,本篇博客将以博主对Guava使用的认识以及在项目中的经验来给大家分享!正如标题所言,学习使用Google Guava可以让你快乐编程,写出优雅的JAVA代码! ...

zfz_linux_boy
2017/04/04
0
0
Guava Collections使用介绍[超级强大]

功能列举 可以说 Java Collections Framework 满足了我们大多数情况下使用集合的要求,但是当遇到一些特殊的情况我们的代码会比较冗长,比较容易出错。Guava Collections 可以帮助你的代码更...

飞翼
2016/12/13
24
0
Google Guava Collections 使用介绍

Google Guava Collections(以下都简称为 Guava Collections)是 Java Collections Framework 的增强和扩展。每个 Java 开发者都会在工作中使用各种数据结构,很多情况下 Java Collections F...

毒性逆转
2011/11/17
0
1
Guava集合-不可变集合

JDK的Collections.unmodifiableXXX方法实现不可变集合的一些问题:   1.它用起来笨拙繁琐你不得不在每个防御性编程拷贝的地方用这个方法   2.它不安全:如果有对象reference原始的被封装...

Kevin-air
2016/08/04
12
0
Guava一些高效类的使用实践

guava是google的一个强大的工具包,目前已经更新到版本22 https://github.com/google/guava,一直有断断续续的用过一些方法,但是没有系统的撸一遍所有功能 今天参考并发编程网记录一些高效的...

zimingforever
2017/06/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据处理也要安全--关于MaxCompute的安全科普

摘要: 企业从未像今天这样可以轻易地存储和使用大数据。然而,当您在使用大数据产品时,是否考虑过其中的安全问题呢?庆幸的是,阿里云产品专家和安全专家早就想你所想急你所急,先行一步将...

阿里云云栖社区
21分钟前
1
0
vue如何编写组件可以通过Vue.use()使用

一般平时用别人的组件时都是通过import引入然后Vue.use()来使用,那么如何让我们写的组件也可以用这种方式使用呢? 1.首先新建一个文件夹例如:Home,然后在该文件中新建两个文件Home.vue和i...

北辰丨丶
21分钟前
2
0
SpringBoot自动配置原理

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面Spring的文章(以学习的顺序排好): Spring入门这一篇就够了 Spring【依赖注...

Java3y
26分钟前
1
0
如何伪装成一个服务端开发(十) -- Spring MVC 源码

前言 在第七篇我们已经聊过了一些Spring MVC的运行原理,当然大多数人应该还是和我一样迷迷糊糊,只知道一个大概的运行过程,这一篇,我想要从源码的角度更加进一步去了解Spring MVC的整个运...

街角的小丑
30分钟前
1
0
应用前台耗电怎么破?功耗避雷指南已“佩奇”

使用应用时被用户吐槽手机掉电快、卡顿、过度发热,导致用户体验差,以上情况的产生,应用的功耗设计不足是直接症结。 当前,人们对性能体验的追求前所未有,应用设计功能越来越强大,界面也...

安卓绿色联盟
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部