这是我第一次使用该库。
为了解释我的问题,让我们举一个小例子:
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 结果。
谢谢。
答案 0 :(得分:2)
通过在反向 bimap视图中插入键 1
,实际上覆盖了您已经拥有的值 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); // 2