Kev*_*ion 25 java puzzle collections
这种通用库方法的最佳实现是什么?
public static <K, V> boolean containsEntry(
Map<K, V> map, K key, V value) {}
Run Code Online (Sandbox Code Playgroud)
与大多数编码难题一样,判断此谜题的标准依次为:
编辑:
好吧,既然关闭了,我不妨发布答案.我认为这可能是最佳的:
V valueForKey = map.get(key);
return (valueForKey == null)
? value == null && map.containsKey(key)
: valueForKey.equals(value);
Run Code Online (Sandbox Code Playgroud)
一个聪明的简单解决方案是:
return map.entrySet().contains(
new AbstractMap.SimpleImmutableEntry<K, V>(key, value));
Run Code Online (Sandbox Code Playgroud)
它确实分配了一个实例,但它为地图实现提供了更多机会来做一些最佳的事情.
public static <K, V> boolean containsEntry(Map<K, V> map, K key, V value) {
returns map.containsKey(key) & isEquals(map.get(key), value);
}
private static boolean isEqual(Object a, Object b) {
return a == null ? a == b : a.equals(b);
}
Run Code Online (Sandbox Code Playgroud)
您还可以内联 isEqual 方法。
| 归档时间: |
|
| 查看次数: |
2510 次 |
| 最近记录: |