無法在此數組程序中執行插入和刪除。請給出建議。只有find()
正在工作。無法執行插入和刪除在這個Java程序數組outoutofbound錯誤
我試過一個臨時[]複製編曲[],然後引用編曲[]來臨時[]
完整的代碼here
public boolean find(int x,int Arr[]){
for (int y=0;y<Arr.length;y++)
{
if(Arr[y]==x) {
System.out.println(" Found , At Position : " + y);
return true;
}
}
System.out.println(" Not Found");
return false;
}
public void delete (int x,int Arr[]){
for (int y :Arr)
{
if(Arr[y]==x)
{
for (int n=y;n<x;n++)
{
Arr[n]=Arr[n+1];
System.out.println("Deleted.");
}
x--;
}
}
}
public void insert(int x,int Arr[]){
int temp[]=new int[Arr.length + 1];
for (int y=0;y<Arr.length;y++)
{
temp[y]=Arr[y];
}
temp[Arr.length]=x;
Arr=temp;
}
您認爲「(int y:Arr)'會做什麼?調試你的應用程序並檢查'y'的值。提示:這不是數組索引,所以我打賭你會在下面的'Arr [y] == x'中得到異常。也可以看一下'insert()',尤其是賦值'Arr = temp'。您是否期望該方法在該方法之外可見?如果是這樣,請重新訪問方法參數教程。 – Thomas
對於方法insert(),請記住,在Java *中,所有*參數都是按值傳遞的,因此您需要找到另一種方法來更改Arr。 – DodgyCodeException
這不像'javascript',它迭代了數組的索引。在Java中,你直接在'y'中獲取值。 – AxelH