Как проверить, является ли хэш-карта Injective (OneOnOne) в Java?
Как мне написать метод, который может проверить, является ли хэш-карта Injective (OneOnOne)? Чтобы для каждого значения на карте был только один ключ. Я хочу, чтобы он прошел этот тест:
Map<Integer, Character> m = new HashMap<Integer, Character>();
m.put(1, 'l');
m.put(2, 'l');
assertFalse(MapUtil.isOneOnOne(m));
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();
}