0

此方法需要排序和排列,我与以下代码很接近,但它所做的是将列表向前向后,即如果列表是“5、4、3”,这会将其更改为“3、4、5” . 这是因为在 if 语句完成后,它会返回到 for 并且一旦完成,for 会将最低设置回 1000。如何让它不每次都设置回 1000?

公共无效排序列表(){

    for(int i=0; i<myList.size(); i++)
    {
        int lowest = 1000;
        if(myList.get(i)<lowest)
        {
            myList.add(0, myList.get(i));
            myList.remove(i+1);
        }
    }

}
4

3 回答 3

1

这个 :

public void sortList() {

    int lowest = 1000;
    for(int i=0; i<myList.size(); i++)
    {

        if(myList.get(i)<lowest)
        {
            myList.add(0, myList.get(i));
            myList.remove(i+1);
        }
    }
}
于 2013-03-28T18:09:16.607 回答
0

使用您给出的示例,我会将“最低”声明移出 for 循环,如下所示:

int lowest = 1000;
for(int i=0; i<myList.size(); i++)
{
    if(myList.get(i)<lowest)
    {
        myList.add(0, myList.get(i));
        myList.remove(i+1);
    }
}

这样它就不会在每个 for 循环中重置为 1000。然后,您可以根据需要在循环内更新它,就像您更新任何其他数值变量一样。

于 2013-03-28T18:08:26.013 回答
0

您只需在循环之外声明最低,并在循环中更新它。

于 2013-03-28T18:07:36.747 回答