我正在实施我们在课堂上学到的“修改顺序搜索”方法。用户输入他们想要添加的项目,并将其发送到我的modSeqSearch方法。在该方法中,将第一项与用户的项进行比较 - 它首先检查用户的项是否大于当前项,然后检查它们是否相等,然后还有一个小于的项。正在比较两个对象,我正在为两个对象使用compareTo和toString。如果我的列表是{1 2 3 4 5}并且我添加了10,则它在1和2之间,而不是结束。我似乎无法解决这个问题。有什么想法吗?
private static int modSeqSearch(ListArrayBasedPlus lABPlus, Object item)
{
int i = 0;
boolean checking = true;
int length = lABPlus.size();
int position = 0;
while(checking)
{
if (item.toString().compareTo(lABPlus.get(i).toString()) > 0) //key is greater than current key
{
position = i++;
if (i == length)
{
position = -i;
checking = false;
}
}
else if (item.equals(lABPlus.get(i))) //key is equal to current key
{
position = i;
checking = false;
}
else //key does not exist
{
position = -i;
checking = false;
}
}
return position;
}