深入理解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;
    }

  

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

时间: 2024-12-16 07:01:23

深入理解java集合框架之---------Arraylist集合 -----添加方法的相关文章

集合框架之ArrayList集合

ArrayList集合的介绍与应用 import java.util.ArrayList; public class TextArraryList { public static void main(String[] args) { ArrayList <String> list1 =new ArrayList<>(); System.out.println(list1);//[ ] list1.add("张三"); list1.add("李四&quo

深入理解java集合框架之---------Arraylist集合 -----构造函数

ArrayList有三个构造方法 ArrayList有三个常量 1.private transient Object[] elementData (数组); 2.private int size (元素个数) 1.ArrayList(int initialCapacity); 构造一个初始容量的集合 /** * 序列化 */ private static final long serialVersionUID = -6277824875242725854L; /** * 定义一个数组 */ pr

集合框架(去除ArrayList集合中的重复字符串元素案例2)

package cn.itcast_04; import java.util.ArrayList; import java.util.Iterator; /* * 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同) * 要求:不能创建新的集合,就在以前的集合上做. */ public class ArrayListDemo2 { public static void main(String[] args) { // 创建集合对象 ArrayList array = new Ar

集合框架(去除ArrayList集合中的重复自定义对象元素案例)

学生类 package cn.itcast_04; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public v

第14章 集合框架(1)-List集合的各种类

1.概述 1.1.Java集合框架的由来 1.2.什么是集合框架? 1.3.为什么需要集合框架 1.4.常用的框架接口规范 2.Vector类 2.1.存储原理 2.2.构造方法 2.3.常用方法 3.Stack类 3.1.什么是栈 3.2.栈的构造方法和常用方法 4.ArrayList类 5.LinkedList类 5.1定义 5.2.常用方法 1.概述 1.1.Java集合框架的由来 刚开始的时候java只有Vetor,Stack,Hashtable这些同容器类用来保存大量的对象.容器类是可

Java集合框架:ArrayList

ArrayList定义 package java.util; public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final int DEFAULT_CAPACITY = 10; private static final Object[] EMPTY_ELEME

java集合框架之ArrayList

废话不多说直接进入正题,本文将一步步来分解ArrayList: 先看下ArrayList主要的成员变量: /** * Default initial capacity. 默认初始化容量10 */ private static final int DEFAULT_CAPACITY = 10; /** * Shared empty array instance used for empty instances. */ private static final Object[] EMPTY_ELEME

Java集合框架之Collection集合

一.引言 Java集合框架和IO框架一样,看似很庞杂的体系框架,但是当你逐一深入每个集合的用法后,就能明显的看出他们之间的区别和联系.最后拎出一个框架图,就一目了然了.由于Java的集合框架分两大系Collection系和Map系,之所以要分开是因为Collection内存储的是线性集合,而Map的元素是以键值对(Key-Value)的形式存的.其实Map和Collection内部实现是存在联系的,学完就懂了.本文主要介绍的Collection中常用的集合的用法以及之间的区别. 二.Collec

深入集合框架之ArrayList源码剖析

ArrayList概述 ArrayList底层由数组实现,非线程安全,但是数组可以动态增加,也可以叫动态数组,提供了一系列的好处,我们来深入看看: 成员变量与构造函数 /** * 存储ArrayList内的数组 */ private transient Object[] elementData; /** * The size of the ArrayList (the number of elements it contains). * ArrayList中包含了多少元素 */ private