package com.briup.algorithm.ArrayList;
import java.util.Arrays;
/**
* @author 六月
* @date 2022-08-07 11:40
* @package com.briup.algorithm.ArrayList
* @title
*/
public class MyArrayList3<T> {
private int MAXSIZE = 10;//初始容量
private int size;//集合元素的个数
private T[] myList;//底层依赖数组
public MyArrayList3() {
initArrayList();
}
//初始化
public void initArrayList(){
myList = (T[]) new Object[MAXSIZE];
size=0;
}
//判断是否为空
public boolean isEmpty(){
if (size==0){
return true;
}
return false;
}
//清空数组
public void clearArrayList(){
myList=null;
size=0;
}
//根据下表获取元素
public T get(int i){
if (i<0||i>=size){
throw new ArrayIndexOutOfBoundsException();
}
return myList[i];
}
//添加元素
public void add(T a){
add(size,a);
}
//添加到size位置 不够长度不够扩容
public void add(int i,T a){
if (i<0||i>size){
throw new ArrayIndexOutOfBoundsException();
}
if (i== myList.length){
extendArrList();
}
myList[size]=a;
size++;
}
// 扩容1.5倍
public void extendArrList(){
myList = Arrays.copyOf(myList,size+size/2);
}
// 设置指定位置元素值
public void set(int i,T a){
if (i<0||i>=size){
throw new ArrayIndexOutOfBoundsException();
}
myList[i]=a;
}
//获取长度
public int getSize(){
return size;
}
//删除指定位置元素
public void delete(int i) {
if (i<0||i>=size){
throw new ArrayIndexOutOfBoundsException();
}
//整体前移 覆盖myList[i]
for(int k = i; k < size; k++){
myList[k] = myList[k+1];
}
// 集合元素个数 减一
size--;
}
//重写toString方法
@Override
public String toString() {
String s = "[";
for (int i = 0; i < size; i++) {
s = s + myList[i];
if (i != size - 1) {
s = s + " ,";
}
}
s += "]";
return s;
}
public static void main(String[] args) {
MyArrayList3<Integer> list3 = new MyArrayList3<Integer>();
System.out.println(list3.isEmpty());
list3.add(1);
System.out.println(list3.isEmpty());
System.out.println(list3);
list3.add(2);
list3.add(3);
list3.add(4);
list3.add(5);
list3.add(6);
list3.add(7);
list3.add(8);
list3.add(9);
list3.add(10);
list3.add(11);
System.out.println(list3);
list3.set(3,12);
System.out.println(list3);
list3.delete(10);
System.out.println(list3);
System.out.println(list3.getSize());
list3.clearArrayList();
System.out.println(list3);
}
}
11-08
337
11-06
638