この汎用ライブラリメソッドの最適な実装は何ですか?最もコーディングパズルのように、このパズルを判断するためのシンプルなJavaマップパズル
public static <K, V> boolean containsEntry(
Map<K, V> map, K key, V value) {}
基準は、この順序である:
- 完全性のPayPalの貢献
- 正しさ
- パフォーマンス
- 美容
- 領収書
EDIT:それが閉じてしまったので、
まあ、私も答えを投稿することがあります。
return map.entrySet().contains(
new AbstractMap.SimpleImmutableEntry<K, V>(key, value));
それはインスタンスを割り当てないが、それは、最適な何かをするもう少し機会をマップの実装を提供します:
V valueForKey = map.get(key);
return (valueForKey == null)
? value == null && map.containsKey(key)
: valueForKey.equals(value);
巧妙な簡単な解決策は次のようになります。私は、これはおそらく最適だと思います。
"は、少なくとも1つの最良の答えがあります。" - いいえ、** ** ** **最良の答えは、定義によると... – jjnguy
ケビン、これに似た質問をするつもりなら、よりよい規則を敷く必要があります。さもなければ、これは十分に答えることができる質問ではありません。 – jjnguy
さて、私は努力しています。編集を参照してください。 私はあなたの最高の定義について興味があります。私のポーカーハンドのカード4枚がクラブ2枚、クラブ3枚、スペードのエース、ハートのエース、私が持つことができる最高の5枚目のカードは何ですか? –