Gli array sono disponibili nella maggior parte dei linguaggi di programmazione: grazie ad essi si possono realizzare strutture dati complesse.

Dichiarazione e allocazione
Definizione formale per fissare i concetti essenziali.
Un array è una struttura dati che consente di rappresentare sequenze di dati dello stesso tipo.

Gli elementi costituenti un array possono essere rintracciati specificando la loro posizione.

T[] var = new T[n];

Ad esempio, se T è il tipo int primitivo

int[] a = new int[10]; 

ovvero un array di interi di lunghezza 10

definito un array di nome var e tipo T di n elementi, gli elementi dell’array sono:

var[0], var[1], ... , var[n-1]

facendo riferimento all'esempio di prima

a[0],a[1],...,a[9]

Nota: si parte da 0 per gli indici come in C, quindi il primo elemento ha indice 0 e l'ultimo 9 (cioè 10-1, la lunghezza dichiarata diminuita di una unità)

n è anche detto dimensione o lunghezza dell’array come intuibile da quanto scritto sopra;

Si possono inizializzare gli elementi contestualmente alla definizione:

T[] var = {values_0,value_1, ... ,value_n};

per esempio

int[] a = {3,4,5,6,8,10,11,8,8,8};

Per cui si hanno i valori dei singoli elementi pari a:

var[0] = value_0 ;var[1] = value_1 ;...var[n] = value_n ;

per esempio

a[0]=3; a[1]=4; e così via

altrimenti la dichiarazione può svolgersi in 2 fasi:

T[] var; var = new T[n] ;

per esempio

int[] a; a=new int[10];

oppure:

var = new T[] { value_0,value_1, ..., value_n }

per esempio

a=new int[]{3,4,5,6,8,10,11,8,8,8};

ciascun elemento dell’array può essere usato allo stesso modo di una variabile:
dato l'array var { value_0, value_1, ..., value_n }
var[0] = value_0 ; var[1] = value_1 ;

posso modificare il secondo elemento dell’array, cioè var[1] con valore new_value_1 con l'istruzione
var[1] = new_value_1 ;

trasformando var in { value_0, new_value_1, ..., value_n }
si può assegnare ad una variabile x del tipo compatibile con T il valore i-esimo di var

Esempio:

T x = var[i] ;

per esempio

int x = a[i];

in questo modo x ha il valore i-esimo dell’array var, ovviamente i deve avere un valore compreso tra 0 e var.lenght-1 che rappresenta la lunghezza dell' array var.

Gli array multidimensionali
Gli array visti sino a questo momento sono di tipo monodimensionale ovvero costituiscono sequenze lineari di dati omogenei e associabili ad un modello vettoriale, in realtà si possono avere anche array multidimensionali in cui ciascun elemento individuato non da un singolo indice ma da un numero di indici maggiore.

Come ad esempio la classica matrice:
T[][] var = new var [n][m];

valgono le considerazioni fatte precedentemente per i tipi monodimensionali, per inizializzare il valore di posizione o coordinate i , j posso scrivere
var[i][j] = a_value ;

per l'inizializzazione smart invece posso fare anche
T[][] var = { {value_0, value_1, ... , value_n} , { value_0, value_1, ... , value_m } }