嘿所以我有這個家庭作業,我遇到了其中一種方法的問題。我想提示而不是實際的答案/代碼。在具有空值的數組中,如何將所有非空值合併在一起?
所以我有一個名爲HorseBarn的類,它與一排馬匹匹配(馬是類型的)。我的問題是我在整合方法上遇到麻煩。
陣列會是什麼樣子之前鞏固: A,B,C,d是馬
| A |空| B |空| C | d |
陣列將是什麼樣子鞏固後:
| A | B | C | d |空|空|
所以我的邏輯是做一個嵌套for循環。第一個循環會搜索空值,一旦第一個循環找到空值,第二個循環就會查找一個馬,然後與它交換。然後第二個循環結束並返回到第一個循環。所以這裏是我現在所擁有的,它不起作用(它只是終止)。我的邏輯錯了嗎?還是我的語法導致了問題?
public void consolidate()
{
int j = 0;
for(int i = 0; i < spaces.length;i++)
{
if(spaces[i] == null)
{
for(j = i; j < spaces.length && spaces[j] == null; j++)
{
}
spaces[i] = spaces[j];
spaces[j] = null;
}
}
你的代碼乍一看似乎沒問題,你怎麼能說它不工作? –
爲什麼內部的'for'循環是空的?它之後的陳述是否打算成爲循環的主體? –
@DavidConrad,認爲它是一個「next-non-null」setter(它尋找下一個「非null」並將它設置在那裏:) –