1

我没有任何特殊的想法来订购我的收藏或不允许收藏中的重复。在我的实体类中我应该使用什么?设置还是列表?在性能方面是否有任何考虑?

假设我们要对这个实体执行 CRUD 操作。我不想让结果排序。那么我应该使用什么?在实体中列出或设置。为了最大限度地提高性能,用户应该是什么

在考虑性能的实体中使用 List 和 Set 的有效案例是什么?不是为了订购或限制重复?

4

2 回答 2

3

正如 vels4j 评论链接中给出的另一篇文章所述,以下内容绝对正确。

列表:允许其中有重复的元素。

Set:所有元素都应该是唯一的。

如果您谈论性能,我知道的一点如下:

如果您List使用 Hiberante 将其映射到表中,则需要添加一个额外的列作为索引。此列将用作元素中的位置/索引/顺序,List因为List它是一个有序集合。有关索引的更多详细信息,请参阅此内容。

如果Set不需要这样的列。

现在举一个例子,你需要从List/Set.

如果是List,删除元素后,您需要更新 List 的所有其他元素以更新其索引。这是一个开销。

而在 的情况下Set,由于您没有索引列,您不必担心其他元素的索引。

所以我的建议是:如果您在从数据库中获取集合时不需要按特定顺序排列集合,那么您应该选择Set.

于 2013-07-09T09:12:10.787 回答
0

HashSet在 a is中按值查找元素O(1)。在一个ArrayList,它是O(n)。但是字典结构HashSet可能比ArrayList. 并且ArrayLists随机访问速度更快。

于 2013-07-09T08:11:16.327 回答