2013-03-28 50 views
0

此方法需要排序和數組,並且我接近下面的代碼,但是它所做的是將列表向前移動,即如果列表爲「5,4,3」,則會將其更改爲「3,4,5」。這是因爲在if語句完成之後,它返回到for,並且一旦完成,它會將最低值設置回1000.我如何使它不會每次都設置回1000?Sort array fix code

公共無效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); 
     } 
    } 

} 

回答

0

只需聲明循環的最低外,並在循環更新。

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); 
    } 
} 

這樣,它不是重置爲1000,每個for循環。然後,您可以根據需要在循環內更新它,就像其他任何數字變量一樣。

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); 
     } 
    } 
}