Java中的数组或列表。哪个更快?
我建议您使用探查器来测试哪个更快。
我个人认为您应该使用列表。
我在大型代码库上工作,以前的一组开发人员到处使用数组。它使代码非常不灵活。将其大块更改为“列表”后,我们注意到速度没有差异。
我写了一个基准测试来比较ArrayLists和Arrays。在我的老式笔记本电脑上,遍历5000个元素的数组列表的时间为1000次,比同等的数组代码慢大约10毫秒。
所以,如果你在做什么,但迭代的列表,你做了很多,那么也许它的价值的最优化。否则,我会使用列表中,因为它会更容易,当你这样做需要优化的代码。
我确实注意到使用for String s: stringsList它比使用老式的for循环访问列表要慢50%。走吧,这是我计时的两个功能。数组和列表中填充了5000个随机(不同)字符串。
private static void readArray(String[] strings) { long totalchars = 0; for (int j = 0; j < IteraTIONS; j++) {totalchars = 0;for (int i = 0; i < strings.length; i++) { totalchars += strings[i].length();} }}private static void readArrayList(List<String> stringsList) { long totalchars = 0; for (int j = 0; j < IteraTIONS; j++) {totalchars = 0;for (int i = 0; i < stringsList.size(); i++) { totalchars += stringsList.get(i).length();} }}解决方法
我必须在内存中保留数千个字符串才能以Java顺序访问。我应该将它们存储在数组中还是应该使用某种List?
由于数组将所有数据保存在连续的内存块中(与列表不同),使用数组存储数千个字符串会不会引起问题?
相关文章:
1. redis sentinel怎么跑守护进程以及日志记录位置的?2. django - Nginx uwsgi 进程问题3. javascript - sublime快键键问题4. 前端 - 这段代码一直生效不了,查半天因为 top: 0px; 分号后一个隐藏的东西,也不是占位符...删了就可以生效,这是什么情况。。5. javascript - 解释下这种函数定义6. phpstudy 发现多个后门木马,有人遇到过吗?7. 关于纯用css写导航鼠标移入事件的问题?8. javascript - 求助关于js正则问题9. 微信小程序支持跳转到外部链接网页吗10. html5 - ElementUI table中el-table-column怎么设置百分比显示。

网公网安备