getPosition方法使用類ArrayLinearList中的方法indexOf返回列表中的項的位置,只要我傳遞一個String的參數,它只是一直返回-1如果項目存在於列表中使用indexOf方法獲取項目的位置
private ArrayLinearList array;
private Scanner scanner;
public ArrayShoppingList1()
{
array = new ArrayLinearList();
scanner = new Scanner(System.in);
}
public int getPosition()
{
System.out.println("Please enter the name of the Item");
String name = scanner.nextLine();
int z = array.indexOf(name);
return z;
}
/** @return index of first occurrence of theElement,
* return -1 if theElement not in list */
public int indexOf(Object theElement)
{
// search element[] for theElement
for (int i = 0; i < size; i++)
if (element[i].equals(theElement))
return i;
// theElement not found
return -1;
}
使用instanceof檢查元素參數。 – ash84
我們可以看到[]元素是什麼? – Tdorno
建議添加'System.out.println(Arrays.toString(element));'在'indexOf()'的開始處仔細檢查數組中的內容 – vandale