我没有任何特殊的想法来订购我的收藏或不允许收藏中的重复。在我的实体类中我应该使用什么?设置还是列表?在性能方面是否有任何考虑?
假设我们要对这个实体执行 CRUD 操作。我不想让结果排序。那么我应该使用什么?在实体中列出或设置。为了最大限度地提高性能,用户应该是什么
在考虑性能的实体中使用 List 和 Set 的有效案例是什么?不是为了订购或限制重复?
我没有任何特殊的想法来订购我的收藏或不允许收藏中的重复。在我的实体类中我应该使用什么?设置还是列表?在性能方面是否有任何考虑?
假设我们要对这个实体执行 CRUD 操作。我不想让结果排序。那么我应该使用什么?在实体中列出或设置。为了最大限度地提高性能,用户应该是什么
在考虑性能的实体中使用 List 和 Set 的有效案例是什么?不是为了订购或限制重复?
正如 vels4j 评论链接中给出的另一篇文章所述,以下内容绝对正确。
列表:允许其中有重复的元素。
Set:所有元素都应该是唯一的。
如果您谈论性能,我知道的一点如下:
如果您List
使用 Hiberante 将其映射到表中,则需要添加一个额外的列作为索引。此列将用作元素中的位置/索引/顺序,List
因为List
它是一个有序集合。有关索引的更多详细信息,请参阅此内容。
如果Set
不需要这样的列。
现在举一个例子,你需要从List/Set
.
如果是List
,删除元素后,您需要更新 List 的所有其他元素以更新其索引。这是一个开销。
而在 的情况下Set
,由于您没有索引列,您不必担心其他元素的索引。
所以我的建议是:如果您在从数据库中获取集合时不需要按特定顺序排列集合,那么您应该选择Set
.
HashSet
在 a is中按值查找元素O(1)
。在一个ArrayList
,它是O(n)
。但是字典结构HashSet
可能比ArrayList
. 并且ArrayLists
随机访问速度更快。