【发布时间】:2017-03-06 21:45:04
【问题描述】:
我想制作一组某种类型的集合(还不确定是哪一个)作为在集合中“存储重复项”的一种方式。例如,如果我想将整数 5 与 39 个附加副本相加,我可以将它放入索引 39 处的数组列表中。因此,如果我要获取数组列表的大小,我会知道集合中存在 5 的多少个副本。
我还有其他几种方法可以实现这一点,但我还没有决定哪一种。我在实现这一点时遇到的主要问题是我不确定如何“动态”创建数组列表(或我最终可能使用的任何集合),以便每当有人调用mySet.add(object) 时,对象是第一个插入到唯一的数组列表中,然后插入到集合本身中。
谁能给我一些关于如何解决这个问题的想法?
编辑:
抱歉,我的问题应该更清楚。我正在编写的代码的重点是我们有一个允许重复的集合。是的,一些相关的方法将被重写/必须被重写。另外,我的代码应该是在我们不知道要插入什么类型的对象(尽管每组只有一种数据类型),也不知道将添加多少相同对象的实例,也不知道将添加多少不同的唯一对象的假设下编写的.
【问题讨论】:
-
为什么不使用
ArrayList<Integer>?Set不应有重复项。 -
有时,如果您定义您的集合可以支持的操作,您的要求会更清楚。
add的合约是什么?还需要什么其他操作?这听起来像是Multiset<T>,基本上是Map<T, Integer>的特化。 -
为什么不简单地存储一个对象出现的次数?
-
@JamesKPolk 我正在考虑这样做,但对于集合来说这并不难,因为将对象添加到集合中的顺序无关紧要,迭代会产生随机输出。因此,我怎么知道哪个计数属于哪个对象。我正在考虑编写某种内部类,它基本上创建一个由“数据”变量和“计数”变量组成的新对象
标签: java duplicates set