ArrayList中add和remove方法具有什么功能呢?

书欣 Java经验 发布时间:2022-09-08 16:02:09 阅读数:20379 1
下文笔者讲述Arraylist类中add和remove方法的功能简介说明,如下所示
add:
  添加元素
remove:
  移除元素

add源码

 
public boolean add(E e) {
	ensureCapacityInternal(size + 1);  //检查数组的容量+1是否满足需求
	elementData[size++] = e; //数值放到元素上
	return true; //返回新增成功状态
}

public void add(int index, E element) {
	rangeCheckForAdd(index);

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

remove方法的功能

//删除数组中的index位置的对象
public E remove(int index)

remove源码

public E remove(int index) {
	rangeCheck(index);

	modCount++;
	E oldValue = elementData(index);

	int numMoved = size - index - 1;
	if (numMoved > 0)
		System.arraycopy(elementData, index+1, elementData, index,
						 numMoved);
	elementData[--size] = null; // clear to let GC do its work

	return oldValue;
}
监测移除的位置在数组元素长度之内
    修改次数+1
将需要删除的元素赋给oldValue,并返回旧元素
   numMoved计算出的是删除元素后需要移动的元素数
   当numMoved>0说明删除元素后需要把后面的元素往前移动
    当numMoved<0时,说明删除的元素为最后一个元素
    直接把最后一个位置置空。
      返回被删值
 

public boolean remove(Object o)
//删除数组中的o对象

public boolean remove(Object o) {
	if (o == null) {
		for (int index = 0; index < size; index++)
			if (elementData[index] == null) {
				fastRemove(index);
				return true;
			}
	} else {
		for (int index = 0; index < size; index++)
			if (o.equals(elementData[index])) {
				fastRemove(index);
				return true;
			}
	}
	return false;
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202209/16626241714390.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者