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();
}
}
答案 0 :(得分:0)
int arraySize=50;
您创建一个大小为50的数组。数组的大小是固定的,因此您无法获得大小为51的数组。在您的代码中,当从数组中添加/删除元素时,您不会更改数组的大小。您只需移动索引即可获得所需的输出。如果你想要一个更大的阵列,你可以: