2012-11-08 52 views
2

我想知道這更好的番石榴的多重集和multipmap Vs的JDK的列表和地圖 在 1時的性能和 2.內存消耗方面番石榴多集和Multipmap

任何人都可以對時間和內存性能說明番石榴?

+3

他們解決不同的需求 - 爲什麼你會比較蘋果和橘子? –

+0

如果你請詳細解釋 – sabbir

+6

這將是一種你除了別的以外,你列出的所有東西都是一個*接口* - 不同的實現可以有不同的性能。 –

回答

2

你混淆了很多東西。

List,SetMap是Java收集庫的基礎接口中的3個。番石榴的MultisetMultimap,雖然類似的探測,但不是SetMap的直接延伸。

Multiset是不是一個真正的Set(直接延伸Collection,實際上),因爲它允許重複,但也沒有(不一定)滿足訂貨像List(對於這一點,你可以有一個LinkedHashSet,這是一個Set實現)。 Multisets一般通常被稱爲包包

Multimap是接受同一個鍵的多個值的映射(但不是Map接口的擴展)。

另外,考慮看看Multiset & Multimap: What's the Point?雖然這是最初的C++,但接受的答案給出了具有良好用例的具體例子,這些例子使這些感官成爲可能。


所以,性能和內存消耗不是主要關注這裏。主要關心的是這些是否是您的用例的正確數據結構。

此外,接口並不能真正讓你對內存消耗做出任何假設(除了對期望的列表,集合或映射類型的一般假設之外),因爲它們只定義API的合約。你想看看的是這些接口的實際實現,如果你想比較它們。