Maison > Java > Javacommencer > Quelles sont les méthodes de construction d'ArrayList en Java ?

Quelles sont les méthodes de construction d'ArrayList en Java ?

王林
Libérer: 2019-11-25 13:47:16
avant
3816 Les gens l'ont consulté

Quelles sont les méthodes de construction d'ArrayList en Java ?

La colonne suivante présentera les méthodes de construction d'ArrayList dans la colonne Introduction à Java Zero Basics. J'espère qu'elle sera utile à votre apprentissage !

1. ArrayList(int initialCapacity)

Ainsi, lorsque nous voulons utiliser ArrayList, nous pouvons utiliser la nouvelle méthode de construction ArrayList (size) pour spécifier la taille de la collection afin de réduire le nombre de extensions et améliorer l'efficacité de l'écriture, le code source du constructeur est le suivant :

// 自定义初始容量的构造方法
public ArrayList(int initialCapacity) {

    if (initialCapacity > 0) {
        this.elementData = new Object[initialCapacity];
    } else if (initialCapacity == 0) {
        this.elementData = EMPTY_ELEMENTDATA;
    } else {
        // 如果初始容量小于0,则会出现 IllegalArgumentException 异常
        throw new IllegalArgumentException("Illegal Capacity: "+
                                           initialCapacity);
    }
}
Copier après la connexion

Ce constructeur est relativement facile à comprendre, car il n'y a pas beaucoup de code impliqué, et ce sont tous des codes de base, je pense que vous le comprendrez. comprenez-le si vous êtes intelligent.

2. ArrayList()

C'est encore plus simple, avec seulement deux lignes de code

// 默认的构造方法,构造一个初始容量为10的空列表
public ArrayList() {
    // elementData 初始化为 DEFAULTCAPACITY_EMPTY_ELEMENTDATA
    this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
Copier après la connexion

3. E> c)

// 构造一个包含指定元素的列表集合,按集合的返回顺序迭代器
// 传入参数为Collection对象
// c要将其元素放入此列表的集合
public ArrayList(Collection<? extends E> c) {
    
    // 调用toArray()方法将Collection对象转换为Object[]
    elementData = c.toArray();
    
    // 判断size的大小,如果size值为0,则会抛出NullPointerException异常
    // 如果size > 0 ,则执行以下代码
    if ((size = elementData.length) != 0) {
        // c.toArray might (incorrectly) not return Object[] (see 6260652)
        if (elementData.getClass() != Object[].class)
            
            // 执行Arrays.copyOf,把Collection对象的内容copy到elementData中
            elementData = Arrays.copyOf(elementData, size, Object[].class);
    } else {
        // replace with empty array.
        this.elementData = EMPTY_ELEMENTDATA;
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal