Java ArrayList() 方法及代码示例

java.util.ArrayList 的构造函数, 具体参照示例.

定义

public ArrayList()

public ArrayList​(int initialCapacity)

public ArrayList​(Collection<? extends E> c)

通过各种方式构造 ArrayList 对象

参数

参数类型参数名称参数描述
intinitialCapacity构造的 ArrayList 的初始容量
Collection<? extends E>c用于初始化ArrayList的元素的集合(Collection)
类型参数EArrayList 的元素类型

返回值

构造方法, 无返回值

抛出的异常

IllegalArgumentException 如果给定的初始容量为副

NullPointerException 如果给定的集合为 null

说明

ArrayList 与普通数组主要的区别在于 ArrayList 的长度的可变性. 那么提供初始化元素个数参数是否就无意义了呢? 答案是否定的, 如果是稳定

ArrayList 实现了以下接口:

Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess.

注意事项

当使用集合初始化一个 ArrayList 的时候, 需要注意集合中的元素的顺序, 比如 Set 中元素的顺序可能就不是固定的(参见示例).

示例

使用三种构造方法初始化 ArrayList 实例的示例

package com.yi21.arraylist;

import java.util.ArrayList;
import java.util.Set;

public class Yi21ArraysList {

    public static void main(String[] args) {
        
        System.out.println("无参数初始化 ArrayList:");
        ArrayList<String> list = new ArrayList<>();
        list.add("Hello");
        list.add("World");
        list.add("21yi");
        list.forEach(System.out::println);

        list = new ArrayList<>(1);
        list.add("Hello");
        list.add("World");
        list.add("21yi");
        System.out.println("指定初始化长度初始化 ArrayList, list 的长度: " + list.size());
        list.forEach(System.out::println);

        System.out.println("使用集合初始化 ArrayList, 需要注意集合元素的顺序:");
        Set<String> set = Set.of("21yi", "World", "Hello");
        list = new ArrayList<>(set);
        list.forEach(System.out::println);

        try {
            String[] array = new String[2];
            array[0] = "Hello";
            array[1] = "World";
            array[3] = "21yi";
        } catch(ArrayIndexOutOfBoundsException e) {
            System.out.println("这是数组与 ArrayList 的主要区别: 数组的元素长度是固定的.");
        }



    }

}

执行结果为 :

无参数初始化 ArrayList:
Hello
World
21yi
指定初始化长度初始化 ArrayList, list 的长度: 3
Hello
World
21yi
使用集合初始化 ArrayList :
World
Hello
21yi
这是数组与 ArrayList 的主要区别: 数组的元素长度是固定的.