尋找和改變它
回答
問題就在於,你永遠不將本地變量arrays
設置爲newArr
。此外,您還沒有完成創建newArr
,因爲return語句會在for循環完成之前退出該方法。對於remove方法結束的正確的代碼是:
Object elementRemoved = null;
for(int i=0;i<arrays.length;i++){
if(!deleteItem[i]){
newArr[index++] = arrays[i];
}
else {
elementRemoved = arrays[i];
}
}
arrays = newArr;
return elementRemoved;
注意,該代碼將刪除傳入方法的對象的所有實例。
另一個更正:您正在傳遞索引,但正在比較值。所以,你是這樣,而不是比較值的指數也有所改變上層爲循環:
for(int i=0;i<arrays.length;i++){
if(i == element){
deleteItem[i]=true;
}
else{
deleteItem[i]=false;
size++;
}
}
然而,你在你的測試方法,指標似乎並不正確。如果它們是零索引,則不會得到您聲稱的結果。事實上,刪除2個元素(僅留下6個,最大索引爲5)後,第6個索引不會存在。
我改變了我的代碼。代碼幾乎可以工作 – 2015-02-12 05:45:23
查看我的更新後的帖子。您要求刪除的索引在第三次刪除呼叫時不會存在。請記住,如果數組爲0索引,則第6項的索引爲5. – colavitam 2015-02-12 05:46:21
現在我明白了,會試試這個。 – 2015-02-12 05:47:54
- 1. 尋找改進方法和在Javascript
- 2. Heroku db pull error,它正在尋找sqlite3,但我有postgres,如何改變這個?
- 3. ionic 2正在尋找app.ts當它應該在尋找app.js
- 4. EDITED尋找SQL改進
- 5. 尋找改進點子
- 6. 更改MPMoviePlayer尋找率
- 7. 尋找特定的單詞 - 然後改變圖像
- 8. 尋找更好的方式來改變父窗體的大小
- 9. 目標尋找宏,改變單元格引用不是硬值
- 10. 尋找失蹤字,並顯示它
- 11. 尋找一種方式執行它
- 12. 尋找剩餘setTimeouts和setInterval
- 13. 尋找最小和最大
- 14. 檢測某些價值和改變它
- 15. 尋找
- 16. 尋找
- 17. 尋找
- 18. 尋找
- 19. 尋找
- 20. 尋找
- 21. 尋找
- 22. 尋找SQL計數性能改進。
- 23. 尋找一羣輕微變種BY
- 24. 尋找細胞變化 - Excel文件
- 25. SQL:尋找最後的類型變化
- 26. 尋找在線XSLT變換器
- 27. OpenCV - 尋找剛體點的變換clould
- 28. 啓發式尋找類不變
- 29. 尋找具有可變內容的文本和字段在Word
- 30. 在文本文件中查找字符串並尋找它們
你的remove方法什麼也不做,它只是返回對應於參數index的元素!由於您使用的是簡單數組,並且不允許使用列表,因此您必須創建一個新數組(跳過要刪除的元素),然後用新數組替換原始數組。 – Mooolo 2015-02-12 05:18:48
@Mooolo好的,我明白我怎樣才能將一個數組複製到一個新的數組中,但我該如何使它跳過我不想要的元素? – 2015-02-12 05:21:22
你的添加方法在哪裏? – Kode 2015-02-12 05:21:26