Qui vient en premier dans un tableau 2D, des lignes ou des colonnes?

Lors de la création d’un tableau 2D, comment se rappeler si les lignes ou les colonnes sont spécifiées en premier?

    Java est considéré comme “ligne majeure”, ce qui signifie qu’il effectue les premières lignes. En effet, un tableau 2D est un “tableau de tableaux”.

    Par exemple:

    int[ ][ ] a = new int[2][4]; // Two rows and four columns. a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] 

    Il peut également être visualisé plus comme ceci:

     a[0] -> [0] [1] [2] [3] a[1] -> [0] [1] [2] [3] 

    La deuxième illustration montre l’aspect “tableau de tableaux”. Le premier tableau contient {a[0] and a[1]} et chacun d’eux est un tableau contenant quatre éléments, {[0][1][2][3]} .

    TL; résumé DR:

     Array[number of arrays][how many elements in each of those arrays] 

    Pour plus d’explications, voir aussi Tableaux – 2 dimensions .

    Bien que Matt B soit vrai dans un sens, il peut être utile de penser à un tableau multidimensionnel Java sans penser aux masortingces géomésortingques. Les tableaux multi-dimensionnels Java sont simplement des tableaux de tableaux, et chaque élément de la première dimension peut être de taille différente des autres éléments ou peut en fait stocker un sous-tableau nul. Voir les commentaires sous cette question

    Instinctivement, on pense géomésortingquement: axe horizontal (X) puis axe vertical (Y). Ce n’est cependant pas le cas avec un tableau 2D, les lignes viennent d’abord, puis les colonnes.

    Considérons l’analogie suivante: en géomésortinge, on marche jusqu’à l’échelle (axe X) et on monte (axe Y). À l’inverse, en Java, on descend l’échelle (lignes) et on s’éloigne (colonnes).

    En Java, il n’y a pas de tableaux multidimensionnels. Il y a des tableaux de tableaux. Alors:

     int[][] array = new int[2][3]; 

    Il se compose en fait de deux tableaux, chacun comportant trois éléments.

    Tout dépend de votre visualisation du tableau. Les lignes et les colonnes sont des propriétés de visualisation (probablement dans votre imagination) du tableau, et non du tableau lui-même.

    C’est exactement la même chose que demander est le numéro “5” rouge ou vert?

    Je pourrais le dessiner en rouge, je pourrais dessiner l’avidité non? La couleur n’est pas une propriété intégrale d’un nombre. De la même manière, la représentation d’un tableau 2D en tant que grid de lignes et de colonnes n’est pas nécessaire pour l’existence de ce tableau.

    La masortingce 2D n’a que la première dimension et la seconde dimension , tout ce qui est lié à la visualisation est purement votre saveur.

    Quand j’ai le caractère char array char[80][25] , je voudrais peut-être l’imprimer sur la console en faisant pivoter 25 lignes de 80 caractères qui défilent à l’écran.

    J’essaierai de fournir un exemple viable lorsque l’on représente un tableau 2D en tant que lignes et colonnes, ce qui n’a aucun sens : Supposons que j’ai besoin d’un tableau de 1 000 000 000 d’entiers. Ma machine a 8 Go de RAM, donc j’ai assez de mémoire pour cela, mais si vous essayez d’exécuter var a = new int[1000000000] , vous obtiendrez probablement une exception OutOfMemory. C’est à cause de la fragmentation de la mémoire – il n’y a pas de bloc de mémoire consécutif de cette taille. Au lieu de cela, vous pouvez créer un tableau 2D 10 000 x 100 000 avec vos valeurs. Logiquement, il s’agit d’un tableau 1D, vous souhaitez donc le dessiner et l’imaginer comme une seule séquence de valeurs, mais en raison de l’implémentation technique, il s’agit de 2D.

    En Java, les lignes sont effectuées en premier, car un tableau à deux dimensions est considéré comme deux tableaux distincts. Commence par le tableau de dimension 1 de la première ligne.