2d Tableau en java

Bonjour,

comment est ce que je peux comparer les éléments d'un 2d Array ?
par exemple array[1][2] avec array[1][3] et array[2][2] array[2][3]
array[3][2], array[3][3], array[4][2],array[4][3]...

s.v.p. toute élément de réponse me serai d'1 grande utilitee

merci

7 réponses

  1. Modérateur
    Je ne comprends pas trop ce que tu veux faire, on ne compare jamais les tableaux, mais toujours les cases. Donc comparer array[i1][j1] avec array[i2][j2] c'est pareil que comparer array[k1] avec array[k2]...
    0
    1. en fait ce sont les cases que je veux comparer; il est question de savoir si le contenu de toute les cases est le meme
      0
      1. Modérateur
        "il est question de savoir si le contenu de toute les cases est le meme"
        Dans ce cas, il n'est pas nécessaire de comparer les cases deux à deux, il suffit de les comparer à la première case :

        /**
         * Compare les valeurs d'une matrice avec equals pour déterminer si toutes les cases sont identiques : matrix[i][j].equals(matrix[0][0])
         * @param matrix une matrice de valeurs
         * @return true si toutes les cases de la matrice ont les mêmes valeurs, false si au moins une case est différente des autres
         * @throws NullPointerException si matrix==null, matrix[0]==null, ou matrix[0][0]==null
         * @throws ArrayIndexOutOfBoundsException si matrix.length==0 ou matrix[0].length==0
         */
        public static <E> boolean identiques(E[][] matrix)
        {
            E e0 = matrix[0][0];
            
            for (E[] tab : matrix)
            for (E e : tab)
                if (!e0.equals(e))
                    return false;
            
            return true;
        }
        La confiance n'exclut pas le contrôle
        0
        1. merci beaucoup pour cette réponse, mais elle ne resou pas le Problem:
          j'ai un tableau x[10][48] par exemple: ce tableau represente 10 jours et 48 fois 30 Min; dans chaque case de ce tableau il y a la valeurs 0 ou 1.
          il est question de prendre par exemple 12 cases des 48 qui se suivent et déterminer si dans ces 12 cases on a au moins une fois 1 pour tous les 10 jours. c'est a dire que de je veux savoir si de x[0][1] j'usqua x[0][11] il ya au moins une fois 1 en meme temps ci c'est valable pour tous x[1][1]... x[1][11] j'usqua x[9][1]...x[9][11]
          0
          1. Modérateur
            Effectivement, le problème est différent, mais ça reste assez simple...

            /** @return true s'il y a au moins un 1 dans la colonne "col" */
            public static boolean testColonne(int[][] matrix, int col)
            {
                for (int row=0; row<10; row++)
                    if (matrix[col][row]>0)
                        return true;
                return false;
            } 
            
            /** @return true s'il y au moins un 1 dans chaque colonne */
            public static boolean testMatrice(int[][] matrix)
            {
                for (int col=0; col<matrix.length; col++)
                    if (!testColonne(matrix,col))
                        return false;
                return true;
            }
            
            // Dans ton exemple :
            boolean b = testMatrice(x);
            0
            1. merci beaucoup pour la reponse mais il s'agit

              /** @return true s'il y a au moins un 1 dans la ligne "col" */ ensuite

              /** @return true s'il y au moins un 1 dans chaque ligne */

              merci d'avance
              0
              1. Modérateur
                Ce n'est pas à moi de faire tes exercices, tu as déjà largement eu les "éléments de réponse" que tu cherchais !
                0