【发布时间】:2012-01-05 19:42:10
【问题描述】:
我需要列出人员名单以及他们到达派对的时间,当他们离开时,我需要将他们从这份名单中删除。 (聚会人数上限为 150)
Set 会告诉我,在任何情况下我都不会添加同一个人两次。
List 可以让我灵活地以很少的空格开始列表(以防没有人出现)。
数组(不确定它们提供什么),但我更经常使用它们。
我的想法是要么创建 2 个数组,一个包含名称,一个包含时间。当有人进来时,我将名字保存在一个,时间保存在另一个。当他/她离开时,我搜索他/她的名字,将其删除并使用相同的索引删除另一个数组上的时间。
一个列表可以有一个包含 2 个元素的数组,然后我只需要将它添加到一个位置,但搜索会稍微复杂一些。
或者是我把事情复杂化了?
【问题讨论】:
-
一张以人为键,以时间为值的地图怎么样?
-
你不需要 2 个数组;你也可以有一个对象 Person { time, name } 的数组
-
您要对数据进行哪些操作?输入是什么样的?
-
我怀疑由于您要处理 150 条记录,因此在设置中增加复杂性不会给您带来太多收益。如果我们谈论数千,也许。那么排序列表呢?搜索会非常快,即使再一次为 150 条记录付出了很多努力。
-
不,这不是家庭作业,实际上也不是关于人们参加聚会的,但我认为这样解释更容易一些。回想起来,我认为这个问题可能有点愚蠢,但仍然有很好的答案值得思考。