Guava新增集合类型-Bimap(5)

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

Bimap数据的强制唯一性

  在使用BiMap时,会要求Value的唯一性。如果value重复了则会抛出错误:java.lang.IllegalArgumentException

理解inverse方法
  inverse方法会返回一个反转的BiMap,但是注意这个反转的map不是新的map对象,它实现了一种视图关联,这样你对于反转后的map的所有操作都会影响原先的map对象。

来看一个星期的例子

package com.smart.guava;

import org.junit.Test;

import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;

public class BiMapTest {
    /**
     * 星期中英文互换
     * @Description
     */
    @Test
    public void testBiMap() {
        BiMap<String, String> weekNameMap = HashBiMap.create();
        weekNameMap.put("星期一", "Monday");
        weekNameMap.put("星期二", "Tuesday");
        weekNameMap.put("星期三", "Wednesday");
        weekNameMap.put("星期四", "Thursday");
        weekNameMap.put("星期五", "Friday");
        weekNameMap.put("星期六", "Saturday");
        weekNameMap.put("星期日", "Sunday");

        System.out.println("星期日的英文名是" + weekNameMap.get("星期日"));
        System.out.println("Sunday的中文是" + weekNameMap.inverse().get("Sunday"));
        System.out.println("反转前:" + weekNameMap);
        System.out.println("反转后:" + weekNameMap.inverse());
    }
}

星期日的英文名是Sunday

Sunday的中文是星期日

反转前:{星期三=Wednesday, 星期四=Thursday, 星期日=Sunday, 星期五=Friday, 星期六=Saturday, 星期二=Tuesday, 星期一=Monday}

反转后:{Wednesday=星期三, Thursday=星期四, Sunday=星期日, Friday=星期五, Saturday=星期六, Tuesday=星期二, Monday=星期一}


你可能感兴趣的:(Guava新增集合类型-Bimap(5))