【问题标题】:Guava Multiset and Multipmap [closed]Guava Multiset 和 Multimap [关闭]
【发布时间】:2012-10-28 09:56:03
【问题描述】:

我想知道 guava 的 multiset 和 multipmap 与 JDK 的 List 和 Map 哪个更好 按照 1.时间表现和 2.内存消耗

谁能解释一下番石榴的时间和内存性能?

【问题讨论】:

  • 它们满足不同的需求 - 为什么要比较苹果和橙子?
  • 如果你能详细解释一下,那将是你的好意
  • 除此之外,您列出的所有内容都是一个接口 - 不同的实现可能有不同的性能。
  • 同意@JonSkeet。您可以比较具体的课程表现。

标签: list map guava multimap multiset


【解决方案1】:

你混淆了很多东西。

ListSetMap 是 Java 集合库的 3 个基础接口。 Guava 的 MultisetMultimap 虽然听起来相似,但不是 SetMap 的直接扩展。

Multiset 并不是真正的Set(实际上它直接扩展了Collection),因为它允许重复,但也不(必然)满足像List 这样的排序(为此,你可以有一个LinkedHashSet,这是一个Set 实现)。 Multisets 通常被称为

Multimap 是一个映射(但不是Map 接口的扩展),接受同一个键的多个值。

另外,请考虑查看 Multiset & Multimap: What's the Point? 虽然这最初是针对 C++ 的,但公认的答案为您提供了这些有意义的良好用例的具体示例。


因此,性能和内存消耗不是这里的主要问题。主要关心的是这些数据结构是否适合您的用例。

此外,接口实际上不允许您对内存消耗做出任何假设(除了对您对列表、集合或映射类型的期望的一般假设之外),因为它们仅定义 API 的合同。如果您想比较它们,您想查看的是这些接口的实际实现。

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2010-12-07
    • 1970-01-01
    • 2015-04-30
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多