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. javascript - 数组原声方法中的一段代码2. html - eclipse 标签错误3. 求大神帮我看看是哪里写错了 感谢细心解答4. php自学从哪里开始?5. javascript - 怎么实现移动端页面滑动切换,从1可以滑到2 但是不能从2滑回1 这样的效果呢?6. javascript - JS设置Video视频对象的currentTime时出现了问题,IE,Edge,火狐,都可以设置,反而chrom却...7. 数据库 - MySQL 单表500W+数据,查询超时,如何优化呢?8. mysql多表查询9. phpstady在win10上运行10. javascript - 如果所有请求都放到actions 里面,那拿到的数据应该 放在哪里,state 还是vue实例里面的data?
