码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-08-26 18:33:24      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:index   min   doc   xtend   OLE   boolean   框架   position   ted   

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集合 -----添加方法

标签:index   min   doc   xtend   OLE   boolean   框架   position   ted   

原文地址:https://www.cnblogs.com/hanxue112253/p/9537709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!