创建一个有序的对象列表,但是当比较两个对象时,如果它们是数字则不能正确显示?

时间:2014-10-30 15:28:28

标签: java object comparison compareto

我正在实施我们在课堂上学到的“修改顺序搜索”方法。用户输入他们想要添加的项目,并将其发送到我的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;
    }

0 个答案:

没有答案