74 votes

Arrays.fill avec un tableau multidimensionnel en Java

Comment remplir un tableau multidimensionnel en Java sans utiliser de boucle ? J'ai essayé :

double[][] arr = new double[20][4];
Arrays.fill(arr, 0);

Il en résulte java.lang.ArrayStoreException: java.lang.Double

0voto

Ahmed Mazher Points 188
public static Object[] fillArray(Object[] arr,Object item){
    Arrays.fill(arr, item);
    return arr;
}
Character[][] maze = new Character[10][10];
    fillArray(maze, fillArray(maze[0], '?'));

    for(int i = 0;i<10;i++){
        System.out.println();
        for(int j = 0;j<10;j++){
            System.out.print(maze[i][j]);
        }
    }

J'espère que cela va bien se passer

0voto

Sanjeev Guglani Points 554

En d'autres termes, Java ne fournit pas une telle API. Vous devez itérer à travers une boucle et utiliser la méthode fill pour remplir un tableau 2D en une seule boucle.

      int row = 5;
      int col = 6;
      int cache[][]=new int[row][col];
      for(int i=0;i<=row;i++){
          Arrays.fill(cache[i]);
      }

0voto

Vineeth Kumar Points 1

Solution récursive

Une solution récursive simple pour remplir chaque ligne d'un tableau 2d avec une valeur donnée.

double[][] arr = new double[20][4];
int n=arr.length;
fillArrRecursively(arr, n-1, 10); //Recursion call

//Recursive method to fill every row of 'arr' with the passed variable 'val'

public static int fillArrRecursively(double arr[][], int n, int val){
    if(n<0) return 1;
    Arrays.fill(arr[n], val);
    return fillArrRecursively(arr, n-1, val);
}

-9voto

watereater Points 1
Arrays.fill(arr, new double[4]);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X