Arrays

Più variabili dello stesso tipo (tutte int o tutte char o tutte String, ecc) possono essere organizzate in un'unica struttura con un nome collettivo detto array.

Le singole variabili sono dette elementi dell'array.

La struttura array è dichiarata scrivendo il nome del tipo degli elementi seguito da coppie di parentesi quadre in numero corrispondente alla dimensione dell'array.

Per indicare che una struttura è un array unidimensionale la specificazione di tipo va seguita da una coppia di parentesi quadre; se l'array è bidimensionale, le coppie di quadre devono essere due, ecc.

I singoli elementi del contenitore sono individuati tramite uno o più indici interi posti tra parentesi quadre. L'indice del primo elemento è 0 (non 1), per cui in un array di n elementi l'indice può variare da 0 a n-1.

Gli arrays possono essere inizializzati direttamente nel modo mostrato nell'esempio.

Esempio:
  String[] musicista={"Gioacchino","Rossini"};
  String nome, cognome;
...........................
  nome = musicista[0];
  cognome = musicista[1];

 

Esempio:
  String[][] musicisti={{"Gioacchino","Rossini"},
{"Giuseppe","Verdi"}};
  String nome, cognome;
...........................
// nome e cognome assumono i valori "Gioacchino" e "Rossini"
  nome = musicisti[0][0];
  cognome = musicisti[0][1];
...........................
// nome e cognome assumono i valori "Giuseppe" e "Verdi"
  nome = musicisti[1][0];
  cognome = musicisti[1][1];

 


La seguente applicazione sviluppa quella proposta nella pagina precedente.

import java.util.GregorianCalendar;     //si importa la classe GregorianCalendar del package util
public class Data
{
  GregorianCalendar oggi;
  int ix_gs, ix_gm, ix_mese, anno;
  static String[] nome_giorno =     //  array statico di stringhe: gli elementi sono fissi
    {"","Domenica","Lunedì","Martedì","Mercoledì", "Giovedì","Venerdì","Sabato"};
// si è inserito un elemento vuoto perché il metodo 
// 'get(GregorianCalendar.DAY_OF_WEEK)' produce valori da 1 a 7
  static String[] nome_mese =
    {"Gennaio","Febbraio","Marzo","Aprile", "Maggio","Giugno","Luglio","Agosto","Settembre",
     "Ottobre", "Novembre","Dicembre"};
  String data;
  public Data() 
   {
     GregorianCalendar oggi = new GregorianCalendar();
     ix_gm = oggi.get(GregorianCalendar.DAY_OF_MONTH);
     ix_gs = oggi.get(GregorianCalendar.DAY_OF_WEEK);
     ix_mese = oggi.get(GregorianCalendar.MONTH);
     anno = oggi.get(GregorianCalendar.YEAR);
     data = "Oggi: "+nome_giorno[ix_gs]+" "+ix_gm+" "+nome_mese[ix_mese]+" "+anno;
     System.out.println(data); 
   }
  public static void main(String[] args)
    {
      Data d = new Data();
    }
}

fig01.gif