`

Map

 
阅读更多

 

BiMap 接口 :

* A bimap (or "bidirectional map") is a map that preserves the uniqueness of
* its values as well as that of its keys. This constraint enables bimaps to
* support an "inverse view", which is another bimap containing the same entries
* as this bimap but with reversed keys and values.

   

   BiMap 一个双向的MAP, jdk中的Map是通过KEY找到VALUE,BiMap提供了inverse方法,把map的key与value反转,可以实现通过value找KEY的功能。要求:VALUE与KEY一样,是不重复的。

 


 

     

方法 说明
V put(@Nullable K key, @Nullable V value);

 

如果value已经与其它的Key建立映射关系,则抛出异常

如果KEY存在,则替换value,并返回旧的value

 V forcePut(@Nullable K key, @Nullable V value);

如果value已经与其它的Key建立映射关系,移出该条映射 关系,添加当前映身关系

void putAll(Map<? extends K, ? extends V> map);

将Map添加到BiMap中,如果value重复则异常

   Set<V> values();

返回所有value组成的SET, 由于value中不重复的,返回返回Set

BiMap<V, K> inverse();

返回 以value为键以key为值的map视图,通过这个视图就可以按value查询对应的key.

 

此视图在类中早已存在(不是新实例化的),只是返回一个引用,因此可以多次调用,不需保存该引用。

 

HashBiMap 是BiMap的实现,使用两个hash表实现。

EnumBiMap 是BiMap的实现,key与value必须是Enum类型的。内部使用两个EnumMap实现

ImmutableBiMap 是BiMap的实现,发布之后不可再更改,是线程安全的。

                            发布方式:1.通过of方法:

                                                 public static <K, V> ImmutableBiMap<K, V> of(K k1, V v1) {

                                                 public static <K, V> ImmutableBiMap<K, V> of(K k1, V v1, K k2, V v2) 

                                                 public static <K, V> ImmutableBiMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3) {   

                                                 public static <K, V> ImmutableBiMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4) {

                                                 public static <K, V> ImmutableBiMap<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5) {

                                               2.通过 builder方法:

                                       static final ImmutableBiMap<String, Integer> WORD_TO_INT =

   *                                                      new ImmutableBiMap.Builder<String, Integer>()

   *                                                     .put("one", 1)

   *                                                     .put("two", 2)

   *                                                     .put("three", 3)

   *                                                      .build();

 

 

     

     

  • 大小: 14.2 KB
分享到:
评论

相关推荐

    java循环Map java迭代Map

    Map a = new HashMap(); //方法一 Iterator it = a.entrySet().iterator(); while (it.hasNext()) { Map.Entry pairs = (Map.Entry) it.next(); System.out.println(pairs.getValue()); } //以下方法需要jdk5以上...

    C语言头文件 MAP C语言头文件 MAP

    C语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言头文件 MAPC语言...

    对于java map类排序

    private static SortedMap, Integer&gt; mapSortByKey(Map, Integer&gt; unsort_map) { TreeMap, Integer&gt; result = new TreeMap, Integer&gt;() Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort...

    mapstruct-1.2.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.2.0.Final.jar; 赠送原API文档:mapstruct-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.2.0.Final.pom; 包含翻译后...

    mapstruct-1.3.1.Final-API文档-中英对照版.zip

    赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...

    mapstruct-1.3.1.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.3.1.Final.jar; 赠送原API文档:mapstruct-1.3.1.Final-javadoc.jar; 赠送源代码:mapstruct-1.3.1.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.3.1.Final.pom; 包含翻译后...

    mapstruct-1.1.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-1.1.0.Final.jar; 赠送原API文档:mapstruct-1.1.0.Final-javadoc.jar; 赠送源代码:mapstruct-1.1.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-1.1.0.Final.pom; 包含翻译后...

    mapstruct-jdk8-1.2.0.Final-API文档-中文版.zip

    赠送jar包:mapstruct-jdk8-1.2.0.Final.jar; 赠送原API文档:mapstruct-jdk8-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-jdk8-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-jdk8-1.2.0....

    GO Map - 3D Map for AR Gaming 3.2

    unity AR游戏地图系统GO Map - 3D Map for AR Gaming 3.2 Requires Unity 2017.2.1 or higher. GO Map is a dynamic map SDK for making location based games with unity 3D. Highly customizable with the ...

    微信小程序使用map组件实现检索(定位位置)周边的POI功能示例

    本文实例讲述了微信小程序使用map组件实现检索(定位位置)周边的POI功能。分享给大家供大家参考,具体如下: 声明 bug: 页面顶部分类【汽车服务、汽车销售等】列表和页脚的详细地址在真机测试是会出现不显示问题? ...

    js模拟list和map

    javascript 模拟 java中的 List,Map js文件为 js/utils.js IE6.0 测试通过 &lt;br&gt;List: add(var obj) //添加一个元素 remove(var index) //删除一个元素 get(var index) //获取一个元素 remove...

    RTAB-MAP开源视觉-激光-里程计SLAM代码

    RTAB-MAP压缩包里有以下个开源代码: 1、RTAB-Map as an open-source lidar and visual simultaneous localization and mapping library for large-scale and long-term online operation-2018.pdf 2、RTABMAP_...

    GO Map - 3D Map for AR Gaming3.4.1

    GO Map是一个动态地图SDK,用于使用unity 3D制作基于位置的游戏。高度可定制的经典Unity检查器界面GO Map是最简单的地图插件。选择各种各样的例子,以充分了解GO地图功能,并建立每一个演示场景在您的智能手机上只要...

    map.toString()后转换成Map类型

    map.toString()后转换成Map类型

    Map (c++实现的简易map)

    vs2013 自己实现的一个简易Map(c++)。

    GeoMap4.0安装包

    GeoMap4.0安装包GeoMap4.0安装包GeoMap4.0安装包GeoMap4.0安装包

    popper.min.js.map

    包含:popper.min.js.map、popper.min.js.map 其实可以直接输入网址&lt;script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"&gt;&lt;/script&gt; 中的网址另存为,或者直接复制网页代码另存为,map文件...

    java中set、list和map的使用方法实例

    // java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)模式。 // GOF给出的定义为:提供一种方法访问一个容器(container)对象中的各个元素, // 而又不需暴露该...

    JAVA Map集合类源码说明

    最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象元素列表。 List 适用于按数值索引访问元素的情形。 Map 提供了一个更...

    map和set的异同

    map和set的异同map和set的异同map和set的异同map和set的异同

Global site tag (gtag.js) - Google Analytics