0

このメソッドは並べ替えと配列を行う必要があり、次のコードに近いですが、それが行うことは、リストを前方から後方に配置することです。つまり、リストが「5、4、3」の場合、これは「3、4、5」に変更されます。 . これは、if ステートメントが完了すると for に戻り、完了すると for が 1000 に設定されるためです。毎回 1000 に戻さないようにするにはどうすればよいですか?

public void sortList() {

    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

ループの外側で最も低い値を宣言し、ループ内で更新するだけです。

于 2013-03-28T18:07:36.747 に答える
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 に答える