Java comparant les tableaux
J'ai deux Tableaux de type inconnu...est-il un moyen de vérifier les éléments sont les mêmes:
public static boolean equals(Object a , Object b) {
if (a instanceof int[])
return Arrays.equals((int[]) a, (int[])b);
if (a instanceof double[]){
////etc
}
Je veux le faire sans toutes les instanceof contrôles....
source d'informationauteur DD.
Vous devez vous connecter pour publier un commentaire.
ArrayUtils.isEquals() de Apache Commons est exactement ce que fait. Elle gère aussi les multi-dimensions des tableaux.
Vous devriez essayer
Arrays.deepEquals(a, b)
Tableaux utilitaires de la classe peut être de l'aide pour cela:
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Arrays.html
Il existe une méthode:
Qui compare les tableaux d'objets.
Si le tableau est de type inconnu, vous ne pouvez pas tout simplement jeté à
Object[]
et ne peut donc pas utiliser les méthodes (equals
deepEquals
) dansjava.util.Arrays
.Vous pouvez toutefois utiliser la réflexion pour obtenir la longueur et les éléments des tableaux, et de les comparer de manière récursive (les éléments peuvent être des tableaux eux-mêmes).
Voici un de l'utilité générale, la méthode pour comparer deux objets (les tableaux sont également pris en charge), ce qui permet à l'un ou même les deux pour avoir la valeur null: