首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么java集合框架中没有直接的包实现?

为什么java集合框架中没有直接的包实现?
EN

Stack Overflow用户
提问于 2013-03-25 06:09:06
回答 2查看 19.3K关注 0票数 24

我不明白为什么JCF (Implementation)没有Bag实现(允许重复,而不是维护顺序)。Bag性能将比当前JCF中的Collection实现好得多。

  • 我知道如何用Java实现Bag
  • 我知道Bag在ApacheCommons中是可用的。
  • 我知道还有其他实现可以作为Bag使用,但是与Bag相比,在其他实现中还有很多工作要做。

为什么Java集合框架没有提供这样的直接实现?

EN

回答 2

Stack Overflow用户

发布于 2014-07-01 09:03:10

目前,袋子违反了收集合同。许多方法与当前的集合规则相冲突。

"Bag是一个集合,它计算一个对象在集合中出现的次数。假设您有一个包含{a, a, b, c}的包。在a上调用getCount(Object)将返回2,而调用uniqueSet()将返回{a, b, c}

请注意,此接口违反了Collection约定。其中许多方法中指定的行为与Collection指定的行为不相同。不符合规定的方法在其摘要行中明确标记为“(违规)”。该类的未来版本将指定与Collection相同的行为,不幸的是,那样会破坏与此版本的向后兼容性。“

代码语言:javascript
复制
 boolean add(java.lang.Object o)
      (Violation) Add the given object to the bag and keep a count.

 boolean removeAll(java.util.Collection c)
      (Violation) Remove all elements represented in the given collection, respecting cardinality.

有关更多信息,请参见链接:这里

票数 3
EN

Stack Overflow用户

发布于 2013-03-25 06:45:07

JDK试图为您提供公共数据结构的实现,并允许您在公共结构无法满足您的目的时实现任何东西。他们可能认为这不是普通的数据structure.From的实用性,他们不可能实现所有的数据结构或满足每个人的需求。对于大多数人来说,你认为普通的东西可能并不常见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15608667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档