什么时候应该在 Java 中使用 ArrayList,什么时候应该使用数组?
最佳答案
一些区别:
- 数组的大小是不可变的,你不能轻易地删除和删除元素并删除空洞,而使用 ArrayList 很简单
- 数组比 ArrayList 更快(由 JVM 作为特殊对象直接处理)并且需要更少的内存
- 数组有一个很好的访问元素的语法(例如
a[i]
vsa.get(i)
) - 数组不能很好地处理泛型(例如,您不能创建泛型数组)
- 数组不能轻易包装为 ArrayList(例如 Collections 实用程序,如
checkedList
、synchronizedList
和unmodifiableList
) - 将
ArrayList
声明为List
您可以在需要时轻松地与LinkedList
交换实现;恕我直言,这是优于普通数组的最大优势 - Array 的
toString
、equals
和hashCode
很奇怪,容易出错,必须用Arrays类实用程序
关于java - 什么时候 ArrayList 比 Java 中的数组更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1288237/