Je dois comparer deux collections à l'aide d'Apache CollectionUtils.isEqualCollection. Ils sont ont la même interface Compress et une méthode pour comparer:Comparaison de deux collections à l'aide d'Equator dans CollectionUtils.isEqualCollection
public boolean isTheSame(Compress compr);
Mais je n'ai pas une idée, comment ajouter un équateur à mon code.
De la documentation:
isEqualCollection(Collection<? extends E> a, Collection<? extends E> b, Equator<?
super E> equator)
Returns true iff the given Collections contain exactly the same elements with exactly the same cardinalities.
Mon code:
return CollectionUtils.isEqualCollection(filtLst3, filtLst4, equator);
Dois-je mettre les méthodes dans mes classes de collection de l'Equateur? Ou peut-être que je devrais écrire quelque chose comme ça (pas de code de travail):
...
Eq equator = new Eq<Compress>();
return CollectionUtils.isEqualCollection(filtLst3, filtLst4, equator);
}
public static class Eq<Compress> implements Equator {
public boolean equate(Object o1, Object o2) {
Compress c1 = (Compress) o1;
Compress c2 = (Compress) o1;
return c1.isTheSame(c2);
}
public int hash(Object o) {
// TODO Auto-generated method stub
return 0;
}
}
je vais vraiment apprécier toute aide!
Que voulez-vous dire par 'Dois-je mettre les méthodes de l'Equateur dans ma collection classes'? – Dimitri
Je veux dire, devrais-je faire en sorte que mes classes implémentent Equator? – Lev
Avez-vous le choix? – Dimitri