Array和ArrayList不同
Employee[] array = new Employee[10];
ArrayList<Employee> staff = new ArrayList<>();
不同 | Array | ArrayList | 利弊 |
长度是否可变 | 长度不可变array的长度一直为10 | 长度可变,通过add、remove添加或删除元素。但是在操作过程中是通过自动创建一个更大的数组,复制小的数组中的值到打的数组中,实现数组长度可变. | |
new ArrayList<>(100)和 new Employee[100] |
new Employee[100]数组长度一直为100 | new ArrayList<>(100)代表创建一个长度为100的数组,但是仍然可以在他的基础上进行添加或者删除。之所以添加这个即wnsureCapacity(100)方法,是为了在100个之内是,不再需要重复的复制原来的对象到一个更大的数组中去,节省了内存的使用,加快了速度。当你不需要这么多空闲的内存时,可以调用trimToSize()方法将长度改变为当前实际存在的对象的长度,垃圾回收系统会恢复额外的内存。 | < |
staff.size和array.length() |
两者一样,都是代表实际存在的对象的长度。 |
||
值得存取方法 |
通过索引array[i]可以进行很方便的存取 |
需要通过set和get方法,即staff.set(i,harry),staff.get(i)来存取。因为ArrayList类并不是java语言的一部分,它只是一个标准库中工具类(被某人所写) | > |