插入一个简单的数组并删除

时间:2016-03-13 07:12:54

标签: java arrays eclipse stack queue

public class DataOperations {
int arraySize=50;
int[]array=new int[arraySize];
public void generateRandomArray(){
for(int i=0;i<arraySize;i++){
    array[i]=i;


}
}
public int getValueAtIndex(int index){
if(index<arraySize){
    System.out.println("Your value At index "+index+" is "+array[index]);
    return array[index];
}else{
    System.out.println("Please Return an Index that is inbounds");
    return 0;
}
}
public boolean doesArrayContainValue(int searchValue){
boolean valueInArray=false;
for(int i=0;i<arraySize;i++){
    if(array[i]==searchValue){
         valueInArray=true;
    }
}
return valueInArray;

}
 public void deleteIndex(int index){
if(index<arraySize){
    for(int i=index;i<(arraySize-1);i++){
        array[i]=array[i+1];

    }       
}
System.out.println(arraySize);
arraySize--;
System.out.println(arraySize);


}
public void printArray(){
for(int i=0;i<arraySize;i++){
    System.out.print(i+"-");
    System.out.println(array[i]);
}
}
public void insertValue(int index){
if(index<arraySize){
array[arraySize]=index;
System.out.println(arraySize);
arraySize++;
System.out.println(arraySize);
}

}
 public void linearSearchForValue(int value){
boolean valueInArray=false;
System.out.println("The was Found and is at Index:");
for(int i=0;i<arraySize;i++){
    if(array[i]==value){
        System.out.println(i);
    }
}
}
}

嘿所以我为我的数组创建了简单的添加和删除方法。但是,我不确定几个部分。我理解add方法,并且我们正在将我在下面的Driver类中创建的特定数组对象的arraySize从50减少到49。但是,如果我在array [arraySize] = index之前放入arraySize ++,并且没有调用我的deleteIndex方法而不是我的arraySize = 51,我不知道为什么我在删除方法insertValue方法之前无法执行我的add方法?但这引发了一个超出范围的例外 下面的驱动程序类

public class Driver {
public static void main(String[] args) {
    DataOperations array=new DataOperations();
    array.generateRandomArray();
    array.insertValue(20);
    array.printArray();

}
}

1 个答案:

答案 0 :(得分:0)

int arraySize=50;

您创建一个大小为50的数组。数组的大小是固定的,因此您无法获得大小为51的数组。在您的代码中,当从数组中添加/删除元素时,您不会更改数组的大小。您只需移动索引即可获得所需的输出。如果你想要一个更大的阵列,你可以:

  1. 创建所需大小的新数组,并将所有元素从旧文件复制到新文件
  2. 使用ArrayList而不是数组。