Guava新集合-Bimap
Guava新集合-Bimap
Kevin-air 发表于2年前
Guava新集合-Bimap
  • 发表于 2年前
  • 阅读 17
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

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

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 13
博文 73
码字总数 26587
×
Kevin-air
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: