【发布时间】:2013-11-05 05:58:09
【问题描述】:
getPosition 方法使用 ArrayLinearList 类中的 indexOf 方法返回列表中项目的位置,每当我传递一个字符串的参数时,即使该项目存在于列表中,它也始终返回 -1
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检查Element参数。
-
我们能看到 element[] 是什么吗?
-
建议在
indexOf()的开头添加System.out.println(Arrays.toString(element));以仔细检查数组中的内容
标签: java object methods arraylist java.util.scanner