package com.utils;
import com.exception.ArrayListException;
/**
* ClassName: ArrayList
* Package: com.utils
* Description:
*
* @Author yang shen
* @Create 2024/1/4 13:14
* @Version 1.0
*/
public class ArrayList {
//默认的容量
private static final int DEFAULT_CAPACITY = 10;
//存放数据的数组
private Object[] elementData;
//集合的大小
private int size;
//无参
public ArrayList() {
elementData = new Object[]{};
}
//有参
public ArrayList(int initCapacity) {
if (initCapacity == 0) {
this.elementData = new Object[]{};
} else if (initCapacity > 0) {
this.elementData = new Object[initCapacity];
} else {
throw new ArrayListException("初始化异常");
}
}
public void add(int element) {
if (elementData.length == 0) {
//扩容10
elementData = growInit(elementData);
elementData[size++]=element;
return;
} else {
//扩容原来的1.5倍
elementData = grow(elementData);
elementData[size++]=element;
return;
}
}
//扩容的方法
public Object[] growInit(Object[] elementData) {
Object[] newElementData = new Object[DEFAULT_CAPACITY];
return newElementData;
}
//扩容的方法
public Object[] grow(Object[] elementData) {
Object[] newElementData = new Object[elementData.length + elementData.length >> 1];
for (int i = 0; i < elementData.length; i++) {
newElementData[i] = elementData[i];
}
return newElementData;
}
public Object[] getElementData() {
return elementData;
}
public void setElementData(Object[] elementData) {
this.elementData = elementData;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public Object get(int index) {
return elementData[index];
}
}
自己瞎写arraylist集合
最新推荐文章于 2024-07-06 13:51:47 发布