当前位置: 首页>>代码示例>>Java>>正文


Java BiMap.inverse方法代码示例

本文整理汇总了Java中com.google.common.collect.BiMap.inverse方法的典型用法代码示例。如果您正苦于以下问题:Java BiMap.inverse方法的具体用法?Java BiMap.inverse怎么用?Java BiMap.inverse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.common.collect.BiMap的用法示例。


在下文中一共展示了BiMap.inverse方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: from

import com.google.common.collect.BiMap; //导入方法依赖的package包/类
public static ClassRenamingMapper from(ClassNameMapper originalMap, ClassNameMapper targetMap) {
  ImmutableBiMap.Builder<String, String> translationBuilder = ImmutableBiMap.builder();
  ImmutableSet.Builder<String> newClasses = ImmutableSet.builder();

  BiMap<String, String> sourceObfuscatedToOriginal = originalMap.getObfuscatedToOriginalMapping();
  BiMap<String, String> sourceOriginalToObfuscated = sourceObfuscatedToOriginal.inverse();
  BiMap<String, String> targetObfuscatedToOriginal = targetMap.getObfuscatedToOriginalMapping();
  BiMap<String, String> targetOriginalToObfuscated = targetObfuscatedToOriginal.inverse();

  for (String originalName : sourceOriginalToObfuscated.keySet()) {
    String sourceObfuscatedName = sourceOriginalToObfuscated.get(originalName);
    String targetObfuscatedName = targetOriginalToObfuscated.get(originalName);
    if (targetObfuscatedName == null) {
      newClasses.add(originalName);
      continue;
    }
    translationBuilder.put(sourceObfuscatedName, targetObfuscatedName);
  }

  ImmutableBiMap<String, String> translation = translationBuilder.build();
  ImmutableSet<String> unusedNames = ImmutableSet
      .copyOf(Sets.difference(targetObfuscatedToOriginal.keySet(), translation.values()));

  return new ClassRenamingMapper(translation, newClasses.build(), unusedNames);
}
 
开发者ID:inferjay,项目名称:r8,代码行数:26,代码来源:ClassRenamingMapper.java

示例2: testConflictInsertKV

import com.google.common.collect.BiMap; //导入方法依赖的package包/类
/**
 * BiMap存储数据时出现冲突
 * 存储时,如果key相同,则会覆盖,则逆转后不会有问题
 * 存储时,如果key不同,value有相同,则逆转时会抛出异常IllegalArgumentException
 */
@Test
public void testConflictInsertKV() {
    // 存储相同key数据,此时会覆盖k1=v1
    BiMap<String, String> biMap1 = HashBiMap.create();
    biMap1.put("k1", "v1");
    biMap1.put("k1", "v2");
    System.out.println("biMap1: " + biMap1);

    // 获取的只有 v2=k1
    BiMap<String, String> inverseBiMap1 = biMap1.inverse();
    System.out.println("inverseBiMap1: " + inverseBiMap1);

    System.out.println("--------------------------------------");

    // 存储相同的value数据
    BiMap<String, String> biMap2 = HashBiMap.create();
    biMap2.put("k1", "v1");

    // 此时抛出异常 java.lang.IllegalArgumentException: value already present: v1
    biMap2.put("k2", "v1");
    System.out.println("biMap2: " + biMap2);

    BiMap<String, String> inverseBiMap2 = biMap2.inverse();
    System.out.println("inverseBiMap2: " + inverseBiMap2);
}
 
开发者ID:cbooy,项目名称:cakes,代码行数:31,代码来源:HashBiMapDemo.java

示例3: testFixedConflict

import com.google.common.collect.BiMap; //导入方法依赖的package包/类
/**
 * value如果有冲突时会抛异常,此时可以选择强制覆盖, forcePut
 */
@Test
public void testFixedConflict() {
    BiMap<String, String> biMap = HashBiMap.create();
    biMap.put("k1", "v1");

    // 此时会强制覆盖,连原来的k1=v1都不存在
    biMap.forcePut("k2", "v1");

    // biMap: {k2=v1}
    System.out.println("biMap2: " + biMap);

    BiMap<String, String> inverseBiMap = biMap.inverse();

    // inverseBiMap: {v1=k2}
    System.out.println("inverseBiMap: " + inverseBiMap);
}
 
开发者ID:cbooy,项目名称:cakes,代码行数:20,代码来源:HashBiMapDemo.java

示例4: testInverseDate

import com.google.common.collect.BiMap; //导入方法依赖的package包/类
/**
 * inverse() BiMap的核心功能inverse,inverse后返回新的BiMap,此时key-value做了翻转
 * inverse() 不改变原来BiMap,而是新生成一个
 * 此时k,v 的存储没有相同的数据冲突
 */
@Test
public void testInverseDate() {
    BiMap<String, String> biMap = HashBiMap.create();
    biMap.put("1233", "haoc");
    biMap.put("1244", "jim");
    biMap.put("1255", "jack");

    // k->v
    String v1 = biMap.get("1233");
    String v2 = biMap.get("1244");
    String v3 = biMap.get("1255");
    System.out.println(v1);
    System.out.println(v2);
    System.out.println(v3);

    // 做键值翻转
    BiMap<String, String> inverseBiMap = biMap.inverse();

    // v->k
    String k1 = inverseBiMap.get("haoc");
    String k2 = inverseBiMap.get("jim");
    String k3 = inverseBiMap.get("jack");
    System.out.println(k1);
    System.out.println(k2);
    System.out.println(k3);
}
 
开发者ID:cbooy,项目名称:cakes,代码行数:32,代码来源:HashBiMapDemo.java

示例5: BiMapPair

import com.google.common.collect.BiMap; //导入方法依赖的package包/类
BiMapPair(BiMap<K, V> original) {
  this.forward = original;
  this.backward = original.inverse();
}
 
开发者ID:zugzug90,项目名称:guava-mock,代码行数:5,代码来源:BiMapInverseTester.java


注:本文中的com.google.common.collect.BiMap.inverse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。