這種通用庫方法的最佳實現是什麼?簡單的Java地圖拼圖
public static <K, V> boolean containsEntry(
Map<K, V> map, K key, V value) {}
判定基準這一難題,與大多數編碼拼圖,按此順序:
- 完整性
- 正確性
- 性能
- 美容
- 的貝寶捐款收據
編輯:
好,因爲它得到關閉,我還不如後回答。我想這大概是最理想的:
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));
它分配一個實例,但它給人的地圖實現多一點機會做一些優化。
「至少有一個最好的答案」 - 不,根據定義,** 1是最好的答案...... – jjnguy 2009-11-06 05:15:40
凱文,如果你打算提出類似的問題,你需要制定一些更好的規則。否則,這真的不是一個可以得到充分回答的問題。 – jjnguy 2009-11-06 05:19:45
好吧,我正在嘗試。請參閱編輯。 雖然我很好奇你最好的定義。如果我的撲克牌的四張牌是2個俱樂部,3個俱樂部,黑桃王牌,心中的王牌,我可以擁有的最好的第五張牌是什麼? – 2009-11-06 05:36:14