【问题标题】:How to check if a hashmap is Injective (OneOnOne) in Java?如何在 Java 中检查 hashmap 是否是单射的(OneOnOne)?
【发布时间】:2019-12-16 22:03:04
【问题描述】:
我如何编写一个方法来检查哈希图是否是单射的(OneOnOne)?这样地图中的每个值都只有一个键。我想要它,所以它可以通过这个测试:
Map<Integer, Character> m = new HashMap<Integer, Character>();
m.put(1, 'l');
m.put(2, 'l');
assertFalse(MapUtil.isOneOnOne(m));
【问题讨论】:
标签:
java
dictionary
testing
hashmap
injective-function
【解决方案1】:
Map<Integer, Character> m = new HashMap<>();
m.put(1, 'l');
m.put(2, 'l');
System.out.println(isOneToOne(m));
public static boolean isOneToOne(Map<?, ?> map) {
Set<?> set = new HashSet<>(map.values());
return set.size() == map.keySet().size();
}