2d Tableau en java

kk_tag Messages postés 4 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. kk_tag Messages postés 4 Statut Membre
     
    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
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    "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
  4. kk_tag Messages postés 4 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  7. kk_tag Messages postés 4 Statut Membre
     
    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
  8. KX Messages postés 19031 Statut Modérateur 3 020
     
    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