深入理解java集合框架之---------Arraylist集合 -----添加方法

Posted 让我们只争朝夕,不负韶华,共同迎接2020年的到来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解java集合框架之---------Arraylist集合 -----添加方法相关的知识,希望对你有一定的参考价值。

Arraylist集合 -----添加方法

1、add(E e) 向集合中添加元素

  

/**
	 * 检查数组容量是否够用
	 * @param minCapacity
	 */
	public void ensureCapacity(int minCapacity){
		modCount++;
		int oldCapacity = elementData.length;
		if(minCapacity > oldCapacity){
			Object oldData[] = elementData;
			int newCapacity = (oldCapacity * 3)/2+1;
			if(newCapacity < minCapacity){
				newCapacity  = minCapacity;
				elementData = Arrays.copyOf(elementData, newCapacity);
			}
		}
		
	}
/* (non-Javadoc)
	 * 向ArrayList中添加元素
	 * @see java.util.AbstractList#add(java.lang.Object)
	 */
	public boolean add(E e){
		ensureCapacity(size+1);
		elementData[size++] = e;
		return true;
	}

 2、add(int  index ,E e) 向集合的指定索引处添加元素

  

/**
     * Inserts the specified element at the specified position in this
     * list. Shifts the element currently at that position (if any) and
     * any subsequent elements to the right (adds one to their indices).
     *
     * @param index index at which the specified element is to be inserted
     * @param element element to be inserted
     * @throws IndexOutOfBoundsException {@inheritDoc}
     */
    public void add(int index, E element) {
	if (index > size || index < 0)
	    throw new IndexOutOfBoundsException(
		"Index: "+index+", Size: "+size);

	ensureCapacity(size+1);  // Increments modCount!!
	System.arraycopy(elementData, index, elementData, index + 1,
			 size - index);
	elementData[index] = element;
	size++;
    }

  3、addAll(Collection< ? extends E> c) 添加集合

 

/* 
	 * 添加元素集合
	 * (non-Javadoc)
	 * @see java.util.AbstractCollection#addAll(java.util.Collection)
	 */
	public boolean addAll(Collection<? extends E> c){
		Object[] a = c.toArray();
		int numNew = a.length;
		ensureCapacity(size+numNew);
		System.arraycopy(a, 0, elementData, size, numNew);
		size+=numNew;
		return numNew!=0;
		
	}

  4、addAll(int index, Collection<? extends E> c); 在指定索引出添加集合

  

public boolean addAll(int index, Collection<? extends E> c) {
	if (index > size || index < 0)
	    throw new IndexOutOfBoundsException(
		"Index: " + index + ", Size: " + size);

	Object[] a = c.toArray();
	int numNew = a.length;
	ensureCapacity(size + numNew);  // Increments modCount

	int numMoved = size - index;
	if (numMoved > 0)
	    System.arraycopy(elementData, index, elementData, index + numNew,
			     numMoved);

        System.arraycopy(a, 0, elementData, index, numNew);
	size += numNew;
	return numNew != 0;
    }

  

以上是关于深入理解java集合框架之---------Arraylist集合 -----添加方法的主要内容,如果未能解决你的问题,请参考以下文章

深入理解java集合框架之---------Arraylist集合

深入理解java集合框架之---------HashTable集合

深入理解java合集之框架总览

Java 集合深入理解 :集合框架体系图

《深入理解Java集合框架》系列文章

《深入理解Java集合框架》系列文章