Какова наилучшая реализация этого универсального библиотечного метода?
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));
Он выделяет экземпляр, но дает реализации карты немного больше возможностей сделать что-то оптимальное.