ArrayList是一种动态数组,它可以存储任意类型的数据,并且可以根据需要动态增加和减少元素。ArrayList初始化有以下几种方法:
1. 通过构造函数初始化
可以通过构造函数来初始化ArrayList,构造函数有两种:
- ArrayList():无参构造函数,用于创建一个空的ArrayList,容量为10。
- ArrayList(int capacity):带容量参数的构造函数,用于创建一个指定容量的ArrayList。
例如:
ArrayList list = new ArrayList(); // 创建一个空的ArrayList,容量为10 ArrayList list = new ArrayList(20); // 创建一个容量为20的ArrayList
2. 通过add()方法添加元素
可以通过add()方法向ArrayList中添加元素,add()方法有以下几种重载形式:
- add(Object obj):向ArrayList中添加一个元素。
- add(int index, Object obj):向ArrayList中指定位置添加一个元素。
- addAll(Collection c):向ArrayList中添加一组元素。
- addAll(int index, Collection c):向ArrayList中指定位置添加一组元素。
例如:
ArrayList list = new ArrayList(); list.add("Hello"); // 向ArrayList中添加一个字符串 list.add(2, "World"); // 向ArrayList的第2个位置添加一个字符串 list.addAll(Arrays.asList("Java", "C++")); // 向ArrayList中添加一组字符串 list.addAll(3, Arrays.asList("Python", "Go")); // 向ArrayList的第3个位置添加一组字符串
3. 通过Collection构造函数初始化
可以通过Collection构造函数来初始化ArrayList,Collection构造函数有一个参数:
- ArrayList(Collection c):带集合参数的构造函数,用于从一个集合中创建一个ArrayList。
例如:
ArrayList list = new ArrayList(Arrays.asList("Java", "C++", "Python", "Go")); // 从一个数组中创建一个ArrayList
注意事项
使用ArrayList时需要注意以下几点:
- ArrayList是非线程安全的,在多线程环境下使用时需要注意同步。
- ArrayList不能存储基本类型的数据,只能存储对象,如果要存储基本类型的数据,可以使用相应的包装类。
- ArrayList的容量是可以动态增加和减少的,当向ArrayList中添加元素时,如果超过了原来的容量,ArrayList会自动增加容量,但是增加容量会消耗额外的时间和空间。
- ArrayList中的元素可以是null,可以存储多个null元素。
- ArrayList的查询速度很快,但是插入和删除的速度比较慢,因为它需要移动大量的元素。