La déclaration des tableaux s'effectuent par l'intermédiaire de crochets ([...]).

type identificateur[];

type[] identificateur;

double resultats[];

char[] lettres;

String[] employes;

Il est possible de placer les crochets après l'identificateur ou après le type pour obtenir une déclaration de tableau.

La taille d'un tableau n'est spécifié qu'à partir du moment de son utilisation dans le programme. Ainsi, la mémoire ne sera allouée que lorsque cela sera nécessaire.

La définition d'une référence d'un tableau, c'est-à-dire la spécification de la taille du tableau référencé par la variable, s'accomplit en utilisant l'opérateur new.

identificateur = new type[taille];

notes = new int[10];
// la variable notes fait référence à
// un tableau de 10 valeurs entières.

La déclaration peut se combiner à la définition du tableau produisant une instruction plus compacte.

long[] idClient = long[100000];

Par défaut, les valeurs de chaque élément d'un tableau sont égales à :

  • 0 pour des entiers (int, short, ...),
  • 0.0 pour des nombres à virgule flottante (double, float, ...),
  • u0000 pour des caractères (char),
  • false pour des booléens (boolean),
  • null pour des objets (Object, String).

Les tableaux peuvent être initialisés par l'intermédiaire d'une liste de valeurs séparées par une virgule et compris entre des accolades.

type[] identificateur = {valeur, ..., valeurN};

type identificateur[] = {valeur, ..., valeurN};

int[] notes = {10, 9, 12, 14, 16, 15, 17, 20, 19, 18};

int notes[] = {10, 9, 12, 14, 16, 15, 17, 20, 19, 18};

Un tableau existant peut être référencé par une autre variable par le biais d'une simple affectation.

int[] resultats = int[10];

int[] resultats = notes;
// Les deux variables notes et resultats
//référencent désormais le même tableau

Dans ce cas de figure, lorsque le contenu du tableau aura subi une modification quelconque par le truchement de l'une des variables, l'autre répercutera évidemment les différences induites puique leur point commun est justement l'objet tableau et son contenu.

class Tableau {
  public static void main(String args[]) {
    int[] notes = {10, 15, 12, 10, 9, 19, 13, 5, 7, 20};
    int[] copie = notes;
    for(int i = 0; i < notes.length; i++)
      if(notes[i] < 10) notes[i] = 10;
    System.out.println ("NOTES :");
    for(int i = 0; i < copie.length; i++)
      System.out.println ("Note n°" + i + " : " + notes[i]);
    System.out.println ("COPIE :");
    for(int i = 0; i < copie.length; i++)
      System.out.println ("Note n°" + i + " : " + copie[i]);
  }
}

L'accès aux éléments d'un tableau est réalisé en utilisant ses indices, soit les numéros de chacun de ses éléments, en sachant que le premier commence à l'indice 0.

valeur = identificateur[indice];

premiereNote = notes[0]; // = 10

sixiemeNote = notes[5]; // = 15

dixiemeNote = notes[9]; // = 18

La redéfinition d'un tableau entraîne la perte de l'ancienne structure avec toutes ses valeurs.

notes = int[50];
// Création d'un nouveau tableau de 50 valeurs entières
// initialisées par défaut à 0,
// et entraînant la suppression de celui de 10 valeurs

La boucle for permet de parcourir un tableau d'une manière automatique.

int total = 0;
for(i = 0; i < 10; i++) {
  total += notes[i];
  System.out.println(notes[i] + "rn");
}
System.out.println("----rn");
System.out.println(total / 10);

D'autre part, la propriété length associée à un objet de type Array, fournit la taille d'un tableau.

int taille = notes.length; // taille = 10

En conséquence, dans une boucle for, la valeur conditionnelle peut être remplacée par cette propriété.

class BoucleFor {
  static int notes[] = {10, 9, 12, 14, 16, 15, 17, 20, 19, 18};
  static int total = 0;
  public static void main(String[] args){
    int i, j;
    for(i = 0; i < notes.length; i++) {
      total += notes[i];
      System.out.println("note  " + i + " : " + notes[i] + "n");
    }
    System.out.println("         ----n");
    System.out.println("Moyenne : " + total / notes.length);
  }
}