通常的编程场景,程序员无需关心 ArrayList 和 vector 需要保存多少个元素,但是如果想其中添加大量元素的时候,
ArrayList bioArrayList=new ArrayList<>();
bioArrayList.ensureCapacity(100000000);
可以这样写,这样减少了重复分配的次数,从而提高了性能,如果没有设置的时候默认的大小为 10
java.util.ArrayList.trimToSize() 方法修整此 ArrayList 实例的是列表的当前大小的容量。应用程序可以使用此操作,以尽量减少一个 ArrayList 实例的存储。
- package com.yiibai;
- import java.util.ArrayList;
- public class ArrayListDemo {
- public static void main(String args[]) {
- // create an empty array list with an initial capacity
- ArrayList<Integer> arrlist = new ArrayList<Integer>(5);
- // use add() method to add elements in the list
- arrlist.add(35);
- arrlist.add(20);
- arrlist.add(25);
- // Trim the arraylist
- arrlist.trimToSize();
- // let us print all the elements available in list
- for (Integer number : arrlist) {
- System.out.println("Number = " + number);
- }
- }
- }
- vector尽量不要用,还有一个区别是ArrayList和vector的话ArrayList在线程方面是不安全的,当多个线程访问同一个ArrayList时候,vector线程是安全的,无须程序保证集合的同步性,因为vector是线程安全的
- 所以vector的性能比ArrayList的性能要低,但是也不推荐使用vector,而是使用collection的一个工具类使ArrayList变得安全。
- 对于stack,我们也要比较少的使用,因为他是继承于vector,所以性能也比较差。而是使用arraydeque来实现栈。
来源: