|
|
1
0
地图是最简单的,但是集合更好地反映了你的逻辑。如果那样的话,我会给你一套建议。 根据数据对象的equals和hashcode,有两种使用集合的方法。 如果您的对象已经使用id对象来确定等于(而hashcode遵守约定),那么您可以使用任何想要的集合,那么hashset可能是最好的。 如果业务逻辑需要不同的equals,并考虑到id字段旁边的多个字段,则应使用自定义比较器。treeset是可以使用这种比较器的集合。 一个例子:
编辑 我已经更新了上面的代码,以反映id不是问题所建议的int。 |
|
|
2
3
您可以使用hashmap(或者linkedhashmap/treemap,如果顺序很重要的话)和一个id键和一个objects值。使用泛型
那你就可以用
或者,您可以继续使用列表,但我们不能在迭代时仅修改集合,因此我们可以使用迭代器移除现有项,然后在循环外部添加新项(现在您确定旧项已消失):
|
|
4
1
你可以用一个
|
|
|
5
0
我的第一个选择是 哈希表 ,这将要求您重写 哈希码 和 等于 方法(不要忘记:如果重写其中一个,则始终重写另一个!)因此具有相同id字段的对象被认为是相等的。 但是,如果不在应用程序的其他部分中进行这种假设,则这可能会破坏某些内容。在这种情况下,您可以选择使用 哈希图 (以id为键)或实现自己的 米哈什特 类(由这样的哈希映射支持)。 |