这个通用库方法的最佳实现是什么?
public static <K, V> boolean containsEntry(
Map<K, V> map, K key, V value) {}
与大多数编码难题一样,判断此难题的标准如下:
- 完整性
- 正确性
- 性能
- 美容
- 收到 PayPal 捐款
编辑:
好吧,既然它已经关闭,我不妨发布答案。我认为这可能是最佳选择:
V valueForKey = map.get(key);
return (valueForKey == null)
? value == null && map.containsKey(key)
: valueForKey.equals(value);
一个聪明的简单解决方案是:
return map.entrySet().contains(
new AbstractMap.SimpleImmutableEntry<K, V>(key, value));
它确实分配了一个实例,但它为 map 实现提供了更多做优化的机会。
最佳答案
public static <K, V> boolean containsEntry(Map<K, V> map, K key, V value) {
returns map.containsKey(key) && isEqual(map.get(key), value);
}
private static boolean isEqual(Object a, Object b) {
return a == null ? a == b : a.equals(b);
}
关于java - 简单的 Java map 拼图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1685552/