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. mysql优化 - mysql count(id)查询速度如何优化?2. python - django 里自定义的 login 方法,如何使用 login_required()3. javascript - git clone 下来的项目 想在本地运行 npm run install 报错4. node.js - node_moduls太多了5. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?6. angular.js - 不适用其他构建工具,怎么搭建angular1项目7. 主从备份 - 跪求mysql 高可用主从方案8. android-studio - Android 动态壁纸LayoutParams问题9. python如何不改动文件的情况下修改文件的 修改日期10. 在Java中System.out.println 只能在method中使用吗?
