我正在BlueJ中創建一個允許用戶對無序數組進行排序和搜索的應用程序。我有搜索工作。目前它要求用戶輸入一個數字來搜索數組,並返回找到或沒有找到的罰款。搜索項目的數組。如何顯示位置項目?
我希望能夠告訴用戶在數組中發現了什麼位置的數字?
下面是我的代碼爲我的搜索方法:
public static void dosearch(OArray a)
{
clrscr();
if (a.isEmpty()) {
System.out.println("Array is Empty!");
pressKey();
return;
}
clrscr();
System.out.println("Enter number to search for : ");
int item;
item = Genio.getInteger();
if (a.retrieve(item) == false)
System.out.println("Cannot find " + item);
else
System.out.println(item + " Found");
pressKey();
}
OArray類代碼:
public class OArray extends Array
{
// These are the Fields
// Constructor
public OArray(){
super();
System.out.println("OArray Created!!! size 10");
}
public OArray(int newsize){
super(newsize);
System.out.println("OArray Created!!!");
}
public boolean addToEnd(int item)
{
if (isFull() == true)
return false;
array[nextfree]=item;
nextfree++;
//bubbleSort();
return true;
}
public void bubbleSort()
{
int temp = 0;boolean swaps = true;int last = nextfree-1;int i = 0;
while (swaps == true)
{
swaps=false;
i = 0;
while (i < last)
{
if (array[i] > array[i+1])
{
temp = array[i+1];
array[i+1] = array[i];
array[i] = temp;
swaps=true;
}
i++;
}
}
}
public boolean retrieve(int item)
{
if (isEmpty())
return false;
int i=0;
while (i < nextfree)
{
if (array[i] >= item)
{
posfound=i;
if (item == array[i])
{
itemback = item;
posfound = i;
return true;
}
else return false;
}
i++;
}
posfound = nextfree;
return false;
}
public boolean addToFront(int item)
{
return addToEnd(item);
}
您正在使用非標準API。我們不知道OArray是什麼。我們所能說的只是:閱讀它的API文檔。 –
我想知道什麼是OArray,在google中找不到。 – Buddha
對不起,我是新手。 OArray是包含數組使用的一些方法的類。包含我發佈的代碼的菜單類繼承了OArray類中的方法。這有任何意義嗎?道歉。 –