J'ai une liste Java d'objets qui est périodiquement effacée puis rechargée avec des versions mises à jour des objets d'une base de données. Avant de recharger, l'utilisateur peut avoir choisi de commander la liste d'une certaine manière. J'ai besoin de trouver un algorithme qui applique l'ordre de la liste précédente à la nouvelle liste.Copie de l'ordre d'un tableau dans un nouveau tableau
Je ne peux pas utiliser le comparateur car l'objet peut effectivement être dans un ordre aléatoire.
Voici mon talon de méthode:
public static List<RetrievedPage> copyPreviousListOrderToFreshList(List<RetrievedPage> previousCopyOfList, List<RetrievedPage> freshCopyOfList)
{
for (RetrievedPage retrievedPage : previousCopyOfList)
{
//reordering, but how?
}
return freshCopyOfList;
}
Merci à l'avance, Barry
Merci Malcolm - Je reçois une ligne verte JUnit pour que ça fonctionne. Je n'ai pas beaucoup d'expérience de Comparator, donc je vais devoir réfléchir un peu sur comment ça marche! – barry
Je pense que je comprends. Cela m'a dérouté un peu car les objets de la nouvelle liste étaient de nouveaux objets, alors comment indexOf peut-il les trouver dans la liste précédente. Mais, index des appels est égal à(), que j'ai remplacé dans RetrievedPage. – barry
Oui, correct: vous devez surcharger 'equals()' pour que la méthode 'indexOf()' sache comment rechercher l'objet similaire, pas exactement pour le même objet. J'aurais probablement dû le dire dans la réponse, je vais ajouter cette information. – Malcolm