这是我第一次使用这个图书馆。
为了解释我的问题,让我们以这个小例子为例:
package javaapplication7;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
public class JavaApplication7 {
public static void main(String[] args) {
BiMap<Integer, Integer> biMap = HashBiMap.create();
biMap.put(0, 0);
biMap.put(2, 1);
biMap.inverse().put(1,3);
System.out.println(biMap.get(0));
System.out.println(biMap.get(2));
System.out.println(biMap.inverse().get(1));
}
}该方案的结果是:
0 空 3.
通常,对于第二次打印,我应该得到1,有人能向我解释为什么我得到一个空值吗?
在我的程序中,我应该在没有特定顺序的情况下在地图上放一些整数,我怎么能做到呢?
对于前面的示例,我希望得到0 1 3结果。
谢谢。
发布于 2018-07-05 12:59:56
通过将一个密钥 1插入到反向 bimap视图中,您实际上覆盖了之前映射的值 1 (即在“普通”biMap中不再有键2,但是在3下有值1)。只需查看每次操作后biMap发生了什么:
biMap.put(0, 0);
System.out.println(biMap); // {0=0}
biMap.put(2, 1);
System.out.println(biMap); // {0=0, 2=1}
final Integer previousValue = biMap.inverse().put(1, 3);
System.out.println(biMap); // {0=0, 3=1}
System.out.println(previousValue); // 2https://stackoverflow.com/questions/51191837
复制相似问题