Какова наилучшая реализация этого универсального библиотечного метода?
public static <K, V> boolean containsEntry(
Map<K, V> map, K key, V value) {}
Критерии оценки этой головоломки, как и для большинства головоломок, находятся в следующем порядке:
- Полнота
- Корректность
- Производительность
- Красота
- Получение вклада PayPal
EDIT:
Хорошо, так как он закрылся, я мог бы также опубликовать ответ. Я думаю, что это, вероятно, оптимально:
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));
Он выделяет экземпляр, но дает реализацию карты немного больше возможностей сделать что-то оптимальное.