为什么在java集合框架中没有直接实现Bag?

Mor*_*Adi 23 java collections

我无法弄清楚为什么JCF(Java Collection Framework)没有Bag实现(允许重复而不维护顺序).Bag性能比JCF中的当前Collection实现要好得多.

  • 我知道如何在java中实现Bag.
  • 我知道Apache中有一个Bag集合.
  • 我知道我可以使用任何实现作为一个包!但是与Bag相比,在其他实现方面有很多工作要做.

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

Aja*_*rge 14

发表评论作为答案,因为它最好地回答了这个问题.

这里提交的错误报告:

Collection框架的维护者之间没有很多热情来设计和实现这些接口/类.我个人不记得需要一个.在JDK之外开发的流行软件包更有可能在证明其在现实世界中的价值后被导入JDK.

对袋子的支持需求今天有效.

番石榴支持它.另外GS-集合.

  • 当我不得不生成一个哈希的集合时,我真的需要使用一个包,考虑排序,但考虑重复它.List.hashcode()考虑元素的顺序.Set.hashset()可以正确地考虑订单,但也会考虑重复的元素.在这种情况下,唯一正确的hashcode()impl可能是Bag实现.这是一个规范的JSON签名的东西. (2认同)