直接操作数据是不好的做法,例如:
Sorter.mergeSort(testData); //(testData is now sorted)
或者我应该创建数据的副本,然后像这样操作并返回:
sortedData = Sorter.mergeSort(testData); // (sortedData is now sorted and testData remains unsorted)?
我有几种排序方法,我希望它们操作数据的方式保持一致。使用我的 insertSort 方法,我可以直接处理未排序的数据。但是,如果我想让未排序的数据保持不变,那么我将不得不在 insertSort 方法中创建未排序数据的副本并操作并返回它(这似乎相当不必要)。另一方面,在我的 mergeSort 方法中,我需要以一种或另一种方式创建未排序数据的副本,因此我最终做了一些似乎相当不必要的事情,以解决返回新的 sortedList:
List <Comparable> sorted = mergeSortHelper(target);
target.clear();
target.addAll(sorted);`
请告诉我哪个是更好的做法,谢谢!