Guia do artigo: Arrays em Java

O que são Arrays?

Os arrays ou matrizes, como são conhecidos pelo Java, fazem parte do pacote java.util na coleção da API do Java. São objetos de recipientes que contém um número fixo de valores de um único tipo. O comprimento de um array é estabelecido quando criado, sendo que após a criação o seu comprimento fica fixo.

Cada item em um array é chamado de elemento, e cada elemento é acessado pelo número, o índice. Abaixo é mostrado se dá esse acesso aos seus elementos, lembrando que sempre sua numeração começa em 0.

Um array de 5 elementos
Figura 1: Um array de 5 elementos

Declarando Arrays

Na declaração de um array, cada elemento recebe um valor padrão, sendo 0 (zero) para números de tipo primitivo, falso (false) para elementos booleanos e nulo (null) para referências. O programa que está na Listagem 1, cria um array de inteiros, coloca alguns valores nela, e imprime cada valor à saída padrão.

Listagem 1: Declaração de arrays.

public class Declaracao_Array {
    public static void main(String[] args) {
        //[] - são inseridos em uma variável que referecia um array
        int[] a = new int[4];
        //OUTRA MANEIRA DE FAZER UMA DECLARAÇÃO DE ARRAY
        int[] b;
        b = new int[10];
        //DECLARANDO VÁRIOS ARRAYS
        int[] r = new int[44], k = new int[23];

//{} - inicializar valores em um array sua declaração
        int[] iniciaValores = {12,32,54,6,8,89,64,64,6};

//DECLARA UM ARRAY DE INTEIROS
        int[] meuArray;
        
        //ALOCA MEMÓRIA PARA 10 INTEIROS
        meuArray = new int[10];
        
        //INICIALIZA O PRIMEIRO ELEMENTO
        meuArray [0] = 100;
        meuArray [1] = 85;
        meuArray [2] = 88;
        meuArray [3] = 93;
        meuArray [4] = 123;
        meuArray [5] = 952;
        meuArray [6] = 344;
        meuArray [7] = 233;
        meuArray [8] = 622;
        meuArray [9] = 8522;
        //meuArray [10] = 564; //ESTOURA A PILHA POIS NÃO EXISTE O ÍNDICE 10

        System.out.println(meuArray[9]);
        System.out.println(meuArray[2]);
    }
}

Descobrindo o tamanho de um array

Por padrão, cada array sabe seu próprio tamanho, independente de quantos valores forem inseridos. O array armazena na variável de instância o método length, que retorna o tamanho do array especificado, conforme o exemplo da Listagem 2.

Listagem 2: Verificando o tamanho de uma array.

public class TamanhoArray {

    public static void main(String[] args) {    
        int[] arrayUm = {12,3,5,68,9,6,73,44,456,65,321};
        int[] arrayDois = {43,42,4,8,55,21,2,45};

        if(arrayDois.length > 8){
            System.out.println("Tamanho do ArrayDois - Maior que 8!");
        }else{
            System.out.println("Tamanho do ArrayDois - Menor que 8!");
        }
        System.out.println("\nTamanho do ArrayUm = "+arrayUm.length);
    }
}

Inicializando um array

Quando inicializamos um array no momento da declaração, é vista uma lista de valores separados por vírgula dispostos entre chaves { }.

No exemplo da Listagem 3, os valores de cada índice não vão ser impressos porque apenas é inicializado e atribuído o tamanho que o array irá ter. Já na Listagem 4, os valores são previamente definidos e, por isso, serão apresentados na tela.

Listagem 3: inicialização sem valor array.

public class Criando_Inicializando_Array {  
  public static void main(String[] args) { 
   //ARRAY COM 10 ELEMENTOS 
   int[] arrayBase; 
   arrayBase = new int[ 20 ]; 
   System.out.printf("%s %10s \n", "Index", "Valores"); 
   //GERA A SAÍDA DO VALOR DE CADA ELEMENTO DO ARRAY 
   for(int i = 0; i < arrayBase.length; i++) 
    System.out.printf("%3d %10d \n", i, arrayBase[ i ]); 
   } 
} 
Listagem 4: Inicializando array com valores.

public class Inicializando_Array {
    public static void main(String[] args) {    
        //LISTA  DE VALORES
        int[] array = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110};   
        System.out.printf("%s %12s \n", "Index", "Valores");    
        //PERCORRE CADA ELEMENTO E IMPRIME O ÍNDICE COM O VALOR
        for( int counter = 0; counter < array.length; counter ++){       
            System.out.printf("%5d %4s %4d \n", counter, "=>" , array[ counter ]);
        }
    }
}

Percorrendo Arrays

A instrução for aprimorado, como é conhecida, serve para obter elementos de um array, sem a possibilidade de alterá-los. Se caso houver necessidade de modificar os elementos, isso pode ser feito com a instrução for controlada por contador.

Na sintaxe do for aprimorado é divida pelos seguintes parâmetros:

  • O tipo com um identificador (parâmetro);
  • O nome do array no qual serão feitas as iterações.
Listagem 5: Sintaxe do for aprimorado.

for ( parâmetro : nomeDoArray )
    instrução

Na instrução for da Listagem 6, a variável arrayNum, passa os valores armazenados para a variável i, fazendo com que o loop possa selecionar um valor a partir do array percorrido.

Listagem 6: Exemplo do for aprimorado.

public class Percorrendo_Arrays_For_Aprimorado {
    public static void main(String[] args) {
        int[] arrayNum = {87, 68, 52, 5, 49, 83, 45, 12, 64};
        int total = 0;  
        //ADICIONA O VALOR DE CADA ELEMENTO AO TOTAL
        for(int i : arrayNum)
            total += i;
        System.out.printf("Total de elementos arrayNum: %d\n", total);
    }
}

Arrays multidimensionais

Esse tipo de array é declarado como tendo duas dimensões e é usado para representar tabelas de valores que consistem em informações organizadas em linhas e colunas.

Os arrays bidimensionais precisam de dois índices para identificar um elemento particular.

Por exemplo, quando um array é identificado dessa forma “numero[indiceA][indiceB]”, a variável numero é o array, o indiceA é a linha e o indiceB é identificado como a coluna, fazendo uma identificação de cada elemento no array por número de linha e coluna.

Exemplo de declaração: int [][] a = { { 1, 2 }, { 2, 2 } };

Array Bidimensional
Figura 2: Array Bidimensional
Listagem 7: Inicializando Array Bidimensionais.

public class Inicializando_Arrays_Bidimensionais {
    public static void main(String[] args) {
        
        int[][] array1 = { { 1,2,3 }, { 4, 5, 6 } };
        int[][] array2 = { { 1, 2 }, { 3 }, { 4, 5, 6} };
        
        System.out.println("Valores no array1 passados na linha são");
        outputArray( array1 ); //exibe o array 2 por linha
        
        System.out.println("Valores no array2 passados na linha são");
        outputArray( array2 ); //exibe o array 2 por linha
            
        }
    //FAZ UM LOOP PELAS LINHAS DO ARRAY
    public static void outputArray(int[][] array)
    {
        //FAZ UM LOOP PELAS COLUNAS DA LINHA ATUAL
        for(int linha = 0; linha < array.length; linha++)
        {
            //FAZ LOOP PELAS COLUNAS DA LINHA ATUAL
            for( int coluna = 0; coluna < array[linha].length; coluna++)
                System.out.printf("%d ", array[linha][coluna]);     
            System.out.println();
        }
    }
}

Conclusão

Arrays são estruturas largamente utilizadas na programação e, por isso, é fundamental entender seu funcionamento e saber como utilizá-las. Como vimos, manipulá-los na linguagem Java não é uma tarefa complexa.

Era isso pessoal, espero que tenham gostado e até a próxima!

Links Úteis

  • O que é TDD?:
    Test Driven Development é uma técnica de desenvolvimento de software muito utilizada, por possuir algumas boas vantagens.
  • Curso Extreme Programming (XP):
    O Objetivo desse curso é permitir que o profissional de TI, envolvido com o desenvolvimento de software, possa aplicar a metodologia ágil de desenvolvimento estabelecida nos conceitos da eXtreme Programming (XP). Através do Curso o aluno se tornará familiarizado com os conceitos, áreas de conhecimento, princípios, práticas e processos por trás do desenvolvimento ágil, mas principalmente os que são aplicáveis ao método XP.

Saiba mais sobre Java ;)

  • O Que é JPA?:
    Dominar a persistência de dados é uma necessidade indispensável aos programadores. Sem esse conhecimento nossas aplicações não terão a capacidade de armazenar e recuperar os dados por ela manipulados.
  • Preparando o ambiente para programar em Java:
    Neste curso você aprenderá a preparar seu ambiente para programar em Java. Veremos aqui o que é necessário instalar e como proceder para desenvolver aplicações com essa linguagem.
  • Criando meu primeiro projeto no Java:
    Neste curso você aprenderá a criar o seu primeiro programa com Java, e não, ele não será um simples “Hello, World!”. :) Para isso, vamos começar ensinando como instalar o Java e preparar o ambiente de desenvolvimento.