Java 我自己的arraylist
我需要做我自己的arraylist类。我正在尝试编写insert方法,如果此索引中已有对象,则在将对象添加到索引0时会遇到问题。它适用于其他索引,但不适用于0。如果有任何帮助,我们将不胜感激Java 我自己的arraylist,java,methods,insert,arraylist,Java,Methods,Insert,Arraylist,我需要做我自己的arraylist类。我正在尝试编写insert方法,如果此索引中已有对象,则在将对象添加到索引0时会遇到问题。它适用于其他索引,但不适用于0。如果有任何帮助,我们将不胜感激 public void insert(int index, Object object) throws IndexOutOfBoundsException { if(index < 0) { System.out.println("Niepoprawny index!");
public void insert(int index, Object object) throws IndexOutOfBoundsException {
if(index < 0) {
System.out.println("Niepoprawny index!");
throw new IndexOutOfBoundsException();
}
if(index > array.length - 1 || array[index] != null) {
// zwiększenie rozmiaru tablicy
// jeśli jest zbyta mała lub na danym miejscu istnieje jakiś obiekt
Object[] temp = new Object[array.length + index];
System.arraycopy(array, 0, temp, 0, array.length);
array = temp;
}
// przesunięcie o 1 w prawo wszystkich elementów
System.arraycopy(array, index - 1, array, index, array.length - index);
array[index] = object;
size++;
}
public void insert(int-index,Object-Object)引发IndexOutOfBoundsException{
如果(指数<0){
System.out.println(“Niepoprawny索引!”);
抛出新的IndexOutOfBoundsException();
}
if(index>array.length-1 | | array[index]!=null){
//zwiększenie rozmiaru
//杰利开玩笑说,兹比塔·马蒂亚·达尼姆·米耶斯库·伊斯特涅耶·杰基·奥比克是一家俱乐部
Object[]temp=新对象[array.length+索引];
数组复制(数组,0,临时,0,数组长度);
数组=温度;
}
//普雷泽苏尼(przesunięcie o 1 w prawo wszystkich elementów)
System.arraycopy(数组,index-1,数组,index,array.length-index);
数组[索引]=对象;
大小++;
}
temp
的大小错误。由于要添加单个元素,因此它应该是array.length+1
arraycopy
中的索引错误数组[索引]!=空
检查if
的整个主体可以替换为对的单个调用
temp
的大小错误。由于要添加单个元素,因此它应该是array.length+1
arraycopy
中的索引错误数组[索引]!=空
检查最后,如果可以用对的单个调用替换整个
。使用此行,您可以尝试在索引-1处插入数据:
System.arraycopy(array, index - 1, array, index, array.length - index);
使用此行,您可以尝试在索引-1处插入数据:
System.arraycopy(array, index - 1, array, index, array.length - index);
导入java.util.array;
公共类MyArrayList{
private int listSize=0;//数组化
private int initialArraySize=1;//初始大小
@抑制警告(“未选中”)
私有E[]数据=(E[])新对象[initialArraySize];//初始化数组
/**
*在每个添加的元素上自动增加数组
*@返回
*/
私有void IncreaseArraySize(){
//添加元素时,将数组的大小增加一个元素
data=Arrays.copyOf(data,data.length+1);
}
/**
*向myArrayList添加元素
*/
公共无效添加(E开头){
//添加到数组,然后将数组大小更改一个元素
int i=数据长度;
if(listSize==data.length){
增加数组化();
}
数据[listSize]=Tobeaded;
listSize++;
}
/**
*
*@param从MyarrayList中删除项目
*
*/
公共作废删除(E ItemToRemove){
//删除要删除的元素,然后在删除后将阵列缩小到新大小
对于(int i=0;i数据长度){
抛出新的IndexOutOfBoundsException();
}
返回null;
}
/**
*获取数组的大小
*/
公共整数大小(){
返回列表大小;
}
}
导入java.util.array;
公共类MyArrayList{
private int listSize=0;//数组化
private int initialArraySize=1;//初始大小
@抑制警告(“未选中”)
私有E[]数据=(E[])新对象[initialArraySize];//初始化数组
/**
*在每个添加的元素上自动增加数组
*@返回
*/
私有void IncreaseArraySize(){
//添加元素时,将数组的大小增加一个元素
data=Arrays.copyOf(data,data.length+1);
}
/**
*向myArrayList添加元素
*/
公共无效添加(E开头){
//添加到数组,然后将数组大小更改一个元素
int i=数据长度;
if(listSize==data.length){
增加数组化();
}
数据[listSize]=Tobeaded;
listSize++;
}
/**
*
*@param从MyarrayList中删除项目
*
*/
公共作废删除(E ItemToRemove){
//删除要删除的元素,然后在删除后将阵列缩小到新大小
对于(int i=0;i