文档章节

Guava新集合-Bimap

Kevin-air
 Kevin-air
发布于 2016/08/05 11:07
字数 233
阅读 17
收藏 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);
    }
}

 

© 著作权归作者所有

共有 人打赏支持
Kevin-air
粉丝 13
博文 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新增集合类型-Bimap

  BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。   通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们...

pior
2015/03/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring详解

Spring详解(一)------概述 目录 1、什么是 Spring ? 2、Spring 起源 3、Spring 特点 4、Spring 框架结构 5、Spring 框架特征 6、Spring 优点   本系列教程我们将对 Spring 进行详解的介绍...

DemonsI
10分钟前
0
0
CentOS7系统Nginx安装

1、下载nginx,官方网站https://nginx.org wget https://nginx.org/download/nginx-1.14.0.tar.gz 2、下载Nginx Sticky Module,官方网站https://bitbucket.org/nginx-goodies/nginx-sticky-......

m_lm
14分钟前
0
0
使用zTree树控件(二)

1:treeNode.checked用于判断是勾选还是取消勾选。(treeNode指的是节点)

uug
14分钟前
0
0
export, import 和 export default的区别

ES6的两个功能: export 和 import export 对外输出模块 import 引入(加载)进来一个模块 一、export => import 单个变量 export var name = "lishi" 在其他文件里引用 import {name} f...

Js_Mei
19分钟前
1
0
打造RecyclerView的n级列表

先上效果图: 1.该多级列表的优势: 支持无限级列表展开 基于一个recyclerView实现 可以自定义每一级item的样式,定制化更强 2.设计的思路 数据结构List<ItemBean>,ItemBean类中有变量List<...

WelliJohn
28分钟前
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部