我正在嘗試編寫一個適用於數組和ArrayList的泛型mergesort方法,但我不確定這是否可能,因爲這兩個結構有不同的方法/用於添加/檢索元素的語法。可以同時採用數組和列表列表的通用方法
0
A
回答
3
我只是寫一個列表的方法,然後編寫第二個方法接受一個數組,它委託給第一個方法。如果您使用Arrays.asList,則對列表所做的任何更改都應該寫入原始數組。
public <T> void mergeSort(T array []) {
mergeSort(Arrays.asList(array));
}
public <T> void mergeSort(List<T> list) {
// do sort here
}
+0
但是我的任務是編寫一個單一的方法 – manis
+0
使它成爲單一方法沒有實際價值。在上面的代碼中,CODE不重複,這是重要的部分。 –
2
你不能寫的排序這兩個完全相同的一個具體方法,但你可以寫一個重載的方法,並委託給其他:
public void mergeSort(List<Integer> list) {
Integer[] arr = list.toArray(new Integer[list.size()]);
mergeSort(arr);
list.clear();
for(int num : arr) {
list.add(num);
}
}
public void mergeSort(Integer[] arr) {
//Actual sorting logic
}
你不能這樣做這有一種方法,除非你告訴它接受Object
並開始拋出異常,如果它是錯誤的類型,這顯然不是goo練習!
相關問題
- 1. 採用可變ARGS語法速記時,列表和方法簽名重寫可
- 2. 通用列表和相應的方法
- 3. C#方法採取的類型列表以相同的屬性
- 4. 通用類列表的通用方法
- 5. IntentService通過列表運行,可以通過onHandleIntent同時重新排列列表
- 6. 我可以通過列表<Model>到一個採用通用通配符列表的工作<?>
- 7. 通用數組列表
- 8. java通用數組列表
- 9. 調用數組列表方法
- 10. java採用不同的列表類型,使用相同的方法名稱
- 11. 計劃函數採用n和列表,並返回列表ñ
- 12. 通用類與通用數組列表
- 13. 列表如何由列表組成的列表可以通過值(不參考)傳遞給java方法?
- 14. 通用方法接受不同的數據類型列表
- 15. 有沒有一種方法可以比較數組和數組列表?
- 16. 可以使用多個表格和列名稱的Rails方法
- 17. 將字符串數組轉換爲列表的通用方法
- 18. 重載以不同類型的通用列表作爲參數的方法
- 19. 返回列表的通用方法
- 20. 通用列表的擴展方法
- 21. 通用列表的列表
- 22. 如何定義返回列表的通用java方法列表
- 23. 通用數組列表問題與get方法(Java)
- 24. javascript:更改數組應用到的數組的方法列表
- 25. 列表或數組的方法參數?
- 26. 的Android數組列表保存和調用最佳方法
- 27. 列表用戶可以通過程序
- 28. 列表用戶可以通過類別
- 29. 列表櫻桃採摘切片方法
- 30. 使用數組和數組列表
超載聽起來像你的果醬。 – duffymo
不可能在沒有重載的情況下做到這一點,因爲這樣做會破壞方法通用性的全部目的。 – manis
@塔倫它並沒有打敗任何目的 - 相反,它是一種完美的方式來實現它。 – berry120