这个问题答案要从不同角度判断,个人理解如下:
数组Array:
相比arraylist而言,高效,但使用前先设定容量,容量固定难以动态扩展。
通常情况下存储同构对象(如int[] String[]等),但声明object[]的数组除外
存储类型校验
不能够随意添加项和删除其中的项
ArrayList:
容量动态增长,牺牲效率
不校验类型,编译时会
ArrayList可以在任意位置插入和删除项
使用时要看情况,基于效率和类型检验一般情况下都使用数组,简明来说ArrayList是Array的复杂版本,其内部封装了一个Object[]而已。
数组性能要比arraylist好,不过arraylist功能强,一般都愿意用arraylist。
数组最适合的场合是多维数组,arraylist用多维的话,非常麻烦。