Guava新集合-Bimap

本文介绍了Guava库中BiMap的使用方法及其特点。BiMap允许通过key和value进行双向查找,有效解决了传统Map只能通过key查找value的问题。文章通过示例展示了如何创建BiMap、添加元素以及进行反转等操作。

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);
    }
}

 

转载于:https://my.oschina.net/kevinair/blog/727657

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值