Java List vs Array [].以前的线程说使用列表,我不相信.
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java List vs Array [].以前的线程说使用列表,我不相信.,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1680字,纯文字阅读大概需要3分钟。
内容图文
![Java List vs Array [].以前的线程说使用列表,我不相信.](/upload/InfoBanner/zyjiaocheng/759/5cfcc2278ca049eb8dddf63e0e793bd0.jpg)
我已经阅读过此前的一些帖子.参数是列表更容易使用,更灵活.
我之前的所有经验都向我展示了灵活性是一种成本.
我正在设计的程序大量使用列表.我有映射到列表的列表,这些列表被比较,追加和搜索(哦,我的!).
它很容易附加两个列表. listA.appendAll(数组listB).
它几乎同样容易追加两个数组.只需创建一个两者大小的新数组并复制它们.
现在,当这些操作按照成千上万的顺序完成时,我的直觉告诉我,阵列将是一个相当好的选择.当然,我更倾向于使用列表,但不是以牺牲性能为代价
我的直觉本能是正确的,还是真正像数组一样有效的列表?我理解ArrayLists如何使容量增加一倍来增加平均值~O(N),但我需要最有效的选择.
解决方法:
你的直觉几乎总是错误的(如果你肯定知道,你不需要听你的胆量,如果你不知道,你的决定大多是随机的).
今天的问题不在于列表的效率如何,问题是:您需要多少内存以及您可以分配多少时间来寻找优化(但遗憾的是稍微损坏)代码中的错误?
数百万人正在使用ArrayList,这是一种安全,可靠,快速和可靠的技术.附加其中两个几乎与使用两个原生数组手动执行一样快但是a)它只是我的一行代码,b)它涵盖了所有的角落情况和c)如果它真的太慢了??,我可以让我的探查者找到那些太慢的地方并修复那些(而不是让我的生活在千分之九的地方悲惨而999并不重要).
除此之外,由于ArrayList是如此繁重的使用类型,Java编译器和JIT已被优化为死亡以使它们快速.因此,即使它看起来更像代码,它实际上可能比您手动编写的任何代码都快,因为JIT无法识别您的代码并将其优化为积极的代码.
最后,您可以轻松编写自己的ArrayList以使用更有效的分配算法.如果您使用List界面在任何地方编写代码,您最终可能需要在一个地方进行优化,以使其在任何地方都更快.
或者可以使用新的Array接口以及您需要的2-3个操作.这样,您可以轻松创建2-3个不同优化目标的实现并相应地使用它们.
根据我的经验,最糟糕的解决方案是使用4-10行本地数组操作(例如,您需要附加两个数组的四行)来填充代码.至少在公共帮助程序类中移动此类代码,并确保使用单元测试覆盖所有角落情况.
内容总结
以上是互联网集市为您收集整理的Java List vs Array [].以前的线程说使用列表,我不相信.全部内容,希望文章能够帮你解决Java List vs Array [].以前的线程说使用列表,我不相信.所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。