我看到許多示例都將List用於「many」關係,但是Set似乎更好地履行了角色,因爲查找可能發生在O( 1),而列表搜索是O(N/2)。有什麼理由爲什麼List是首選的類型?爲什麼使用java.util.List而不是java.util.Set來處理Ebean中的關係
3
A
回答
1
1
List
和Set
在語義上是不同的。只查看查詢時間是一個壞主意,可能會導致更嚴重的問題。
List
可以有重複,Set
不能。
List
也保證訪問索引,其中Set
s不。 (雖然Set
的實現當然可能。)
2
0
我一直認爲List保留了對底層數據庫的查詢結果的任何順序。
3
只有在ManyToMany關係的情況下,重複才重要,在其他情況下,ORM也會處理List中的重複。
相關問題
- 1. 爲什麼使用中斷來處理系統調用?
- 2. 從Scala中的java.util.Set構造一個java.util.List
- 3. 使用RavenDB處理與T []而不是T的文檔關係
- 4. java.util.Set,java.util.List可序列化問題
- 5. 爲什麼在StructureMap中處理Singleton類而瞬變不是
- 6. 圖像處理中的連續卷積關係是什麼?
- 7. 爲什麼要在WPF中使用命令而不是事件處理程序
- 8. 使用cURL而不是Fiddler會帶來什麼好處?
- 9. 處理不Ebean和Dropwizard
- 10. 如果使用Ebean ManyToOne關係,數據庫表會是什麼樣子?
- 11. 如何處理與Ebean的單向多對多關係
- 12. 類繼承了類型爲java.util.Set和java.util.List的spliterator()的無關缺省值
- 13. java.util.List的是一個接口,而JAXB無法處理接口
- 14. 爲什麼不使用錯誤數組而不是異常處理?
- 15. 爲什麼我會使用Spark而不是Java來處理來自cassandra的數據?
- 16. 爲什麼AutoMapper/EF添加新項目而不是關係?
- 17. 爲什麼使用DELETE/POST而不是PUT來取消/關注用戶?
- 18. 爲什麼JTree處理來自DefaultTreeModel但不是TreeModel的事件?
- 19. 爲什麼Vector2(來自XNA的庫)使用float而不是int?
- 20. 爲什麼我應該使用XmlType而不是關係數據庫?
- 21. 批處理:爲什麼附加文本文件寫入「ECHO關閉」而不是?
- 22. 爲什麼要用FetchMode.JOIN而不是FetchType.EAGER來使用FetchType.LAZY?
- 23. 處理安裝依賴關係的最佳方法是什麼?
- 24. 爲什麼使用classmethod而不是staticmethod?
- 25. 爲什麼使用iconv_strpos而不是strpos?
- 26. 爲什麼使用registerDefaults:而不是setValue:forKey:?
- 27. 爲什麼使用TagBuilder而不是StringBuilder?
- 28. 爲什麼,而不是使用回調
- 29. 爲什麼使用結構,而不是
- 30. 爲什麼使用StringWriter而不是StringBuffer?
人們通常喜歡保持插入順序並允許重複。 –