Dans votre exemple, vous avez:
if (new BigInteger("1111000011110001", 2).toByteArray() == array)
Lorsque vous traitez avec des objets, ==
en java compare les valeurs de référence. Vous êtes de la vérification pour voir si la référence du tableau retourné par toByteArray()
est le même que le lieu de référence en array
, ce qui bien sûr ne peut jamais être vrai. En outre, la matrice de classes ne pas surcharger .equals()
si le comportement est celui d' Object.equals()
qui seulement compare les valeurs de référence.
Pour comparer le contenu de deux tableaux, tableau statique méthodes de comparaison sont fournies par les Tableaux de la classe
byte[] array = new BigInteger("1111000011110001", 2).toByteArray();
byte[] secondArray = new BigInteger("1111000011110001", 2).toByteArray();
if (Arrays.equals(array, secondArray))
{
System.out.println("Yup, they're the same!");
}