3

我看到许多示例将 List 用于“许多”关系,但是,Set 似乎更好地发挥了作用,因为查找可以在 O(1) 中发生,而列表搜索为 O(N/2)。有什么理由为什么 List 是首选使用的类型?

4

5 回答 5

3

重复只有在多对多关系的情况下才重要,在其他情况下,ORM 也处理 List 中的重复。

于 2012-11-22T13:26:37.413 回答
2

这取决于您使用的情况。

  1. Set不包含重复项,而您可以在列表中保存重复项。
  2. 列表以插入的顺序存储项目。
于 2012-11-22T12:02:30.543 回答
1

List并且Set在语义上是不同的。仅查看查找时间是一个坏主意,并且可能会导致进一步的严重问题。

List可以有重复,Set不能。
List还保证按索引访问,而Sets 不保证。(尽管某些Set实现当然可能。)

于 2012-11-22T12:01:33.213 回答
1

检查自己,Ebean 的作者已经在文章中详细回答了它:

列表集地图或集合?

您会在此处找到每种类型的摘要描述以及所选类型之间的比较。

于 2012-11-22T12:06:46.437 回答
0

我一直认为 List 保留了对底层数据库的查询结果的任何顺序。

于 2012-11-22T12:03:55.773 回答