Array 自动扩容方法

tech2026-02-25  1

public void addLast(T e){ if(size == data.length){ resize((int)(data.length*1.6)); } data[size] =e; size++; } public void add(int index,T e){ if(index <0 || index >= size){ throw new RuntimeException("非法的参数"); } if(size == data.length){ /** * 当size长度不够时,调用扩容方法把 * data.length增加至1.6倍并改变数组 */ resize((int)(data.length*1.6)); } for(int i = size-1 ; i>=index ;i--){ data[i+1] = data[i]; } data[index] = e; size++; } private void resize(int newCapacity){ T[] newData =(T[]) new Object[newCapacity]; for (int i =0; i<size;i++ ){ newData[i] = data[i]; } data = newData; }

 

最新回复(0)