Qual è l'implementazione migliore per questo metodo di libreria generico?Simple Java Map puzzle
public static <K, V> boolean containsEntry(
Map<K, V> map, K key, V value) {}
criteri per giudicare questo puzzle, come la maggior parte i puzzle di codifica, sono in questo ordine:
- Completezza
- Correttezza
- prestazioni
- bellezza
- ricevuta del contributo PayPal
EDIT:
Ebbene, dal momento che ha ottenuto chiuso, potrei anche inviare la risposta. Penso che questo è probabilmente ottimale:
V valueForKey = map.get(key);
return (valueForKey == null)
? value == null && map.containsKey(key)
: valueForKey.equals(value);
Una soluzione semplice intelligente potrebbe essere:
return map.entrySet().contains(
new AbstractMap.SimpleImmutableEntry<K, V>(key, value));
lo fa assegnare un esempio, ma dà l'implementazione mappa un po 'più opportunità di fare qualcosa ottimale.
"C'è almeno una risposta migliore" - No, la risposta è ** one ** "best" per definizione ... – jjnguy
Kevin, se hai intenzione di fare domande simili a questa, devi stabilire alcune regole migliori. Altrimenti, questa non è una domanda a cui si possa rispondere a sufficienza. – jjnguy
Ok, ci sto provando. Vedi modifica. Sono curioso della tua definizione di migliore, però. Se quattro carte della mia mano di poker sono 2 di fiori, 3 di fiori, asso di picche, asso di cuori, qual è la migliore quinta carta che potrei avere? –