java - 什么时候 ArrayList 比 Java 中的数组更可取?

标签 java arrays data-structures collections

什么时候应该在 Java 中使用 ArrayList,什么时候应该使用数组?

最佳答案

一些区别:

  • 数组的大小是不可变的,你不能轻易地删除和删除元素并删除空洞,而使用 ArrayList 很简单
  • 数组比 ArrayList 更快(由 JVM 作为特殊对象直接处理)并且需要更少的内存
  • 数组有一个很好的访问元素的语法(例如 a[i] vs a.get(i))
  • 数组不能很好地处理泛型(例如,您不能创建泛型数组)
  • 数组不能轻易包装为 ArrayList(例如 Collections 实用程序,如 checkedListsynchronizedListunmodifiableList)
  • ArrayList 声明为 List 您可以在需要时轻松地与 LinkedList 交换实现;恕我直言,这是优于普通数组的最大优势
  • Array 的toStringequalshashCode 很奇怪,容易出错,必须用Arrays类实用程序

关于java - 什么时候 ArrayList 比 Java 中的数组更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288237/

相关文章:

c - 尝试分配一系列数组以包含数组中的名称

c - 将保存未知长度的字符串并能够稍后删除它们的数据结构

javascript - 如何通过 Lodash 拆分包含另一个数组的对象数组

java - Tries 中自动完成,打印根节点时出现问题

python - Python 的数据结构

JAVA如何循环Socket变量

java - 如何使 JTable 单元格(链接)可点击

java - 为什么运行此命令后出现端口错误?

java - 正则表达式:解析包含最后一个、第一个和中间首字母的字符串

c - 在 C 中实现字典的快速方法