在过去的几年中,我不得不深入研究Spring的源代码。我注意到开发者们真的很喜欢链表。我不确定他们为什么选择这个作为列表实现。有谁知道为什么做出这个延期决定?为什么Spring的源代码如此使用链接列表
3
A
回答
2
这实际上取决于用法。但也许是因为增长链表时空间的复杂性很便宜,如果你只是迭代一个集合,你不会做任何查找操作,这是一个不错的选择。回想一下,ArrayList的实现有一个几何增长模型,如果你不知道这个列表将会有多大,那么这是一个不错的选择。通过增加当前容量的列表会导致将当前数组复制到当前容量的两倍的新数组。
+0
我有点想这个。这似乎是一个奇怪的选择,因为AL的实现速度比LL快,在我看来,大多数用例不需要更多16个元素,这是默认数组大小。 – Virmundi 2012-04-22 02:02:00
相关问题
- 1. 为什么我的链接列表代码导致链接错误?
- 2. 为什么不能使用此代码?
- 3. 为什么使用冒泡排序来排序链接列表时,此代码无法正常工作?
- 4. 此代码打印什么?为什么?
- 5. 此功能为什么向后打印链接列表?
- 6. 为什么CountDownLatch源代码如此复杂?
- 7. 为什么此源代码在Grails 1.3.7中不起作用?
- 8. Angular Moustache评估 - 为什么此代码的行为如此?
- 9. 为什么此代码在循环列表时抛出'InvalidOperationException'?
- 10. 为什么列表<>不在此代码中填充?
- 11. Openbravo ERP源代码链接
- 12. 链接C++源代码
- 13. 开源RTOS代码链接
- 14. 为什么不能使用此代码? (新编码)
- 15. Java:查看源代码的链接列表?
- 16. 为什么不接受此事件接收器代码工作?
- 17. 为什么此Java代码的性能如此不一致?
- 18. 为什么此代码使用* char作为缓冲区指针?
- 19. 反向链接列表的代码
- 20. C++中的链接列表代码
- 21. XOR链接列表的C代码
- 22. Silverlight SDK源代码中此方法的用途是什么?
- 23. 为什么Windows的gflags无法使用此代码崩溃?
- 24. 为什么我在此代码中接收Java中的IllegalFormatConversionException?
- 25. 为什么此代码抛出System.ExecutionEngineException
- 26. 此代码为什么编译失败?
- 27. 为什么此代码会导致NullPointerException?
- 28. 为什么此代码会产生InvalidMemoryOperationError?
- 29. 为什么此代码会生成ArrayIndexOutOfBoundsException?
- 30. 为什么此代码不显示Google.com
他们在哪里/他们如何使用它? – 2012-04-21 01:56:38