0
我有定期清除的對象的Java列表,然後用數據庫中對象的更新版本重新加載。在重新加載之前,用戶可能已經選擇以某種方式排列列表。我需要找到一個算法,將先前列表的順序應用到新列表中。將陣列的順序複製到新陣列
我不能使用比較器作爲對象可能實際上是隨機的順序。
這裏是我的方法存根:
public static List<RetrievedPage> copyPreviousListOrderToFreshList(List<RetrievedPage> previousCopyOfList, List<RetrievedPage> freshCopyOfList)
{
for (RetrievedPage retrievedPage : previousCopyOfList)
{
//reordering, but how?
}
return freshCopyOfList;
}
由於提前, 巴里
感謝馬爾科姆 - 我得到一個JUnit綠線,因此它的工作原理。我沒有比較器的很多經驗,所以我不得不思考它是如何工作的! – barry
我想我明白了。它讓我感到困惑,因爲新列表中的對象是新對象,所以indexOf如何在前面的列表中找到它們。但是,調用索引equals(),我在RetrievedPage中覆蓋了它。 – barry
是的,正確的:你應該重載'equals()',這樣'indexOf()'方法可以知道如何查找類似的對象,而不是完全針對同一個對象。我應該可能在答案中說過,我會添加這些信息。 – Malcolm