Voltar

Do que se trata o artigo: Como utilizar as variáveis indexadas bidimensionais ou matrizes para agrupar e organizar um conjunto de elementos disponibilizando para cada valor dois índices, o primeiro identificando a linha e o segundo a coluna, da posição de armazenamento.


Em que situação o tema é útil:
No desenvolvimento de aplicações Java que realizam sobre um conjunto indexado bidimensional de elementos a entrada de dados do mundo real, a realização de operações para transformar estes dados em informações e na apresentação dos resultados obtidos no dispositivo de saída padrão.

Matrizes: Os vetores bidimensionais ou matrizes são estruturas de dados que representam um conjunto de valores do mesmo tipo (estrutura homogênea), referenciáveis pelo mesmo nome e individualizados entre si através de sua posição de linha e coluna dentro desse conjunto (variáveis indexadas bidimensionais). A linguagem Java não suporta arrays multidimensionais (arrays que podem ter duas ou mais dimensões) diretamente, mas permite que o programador especifique os array unidimensionais (uma dimensão) cujos elementos também são arrays unidimensionais, alcançando assim o mesmo efeito. Na declaração de matrizes deverão ser fornecidas, principalmente, o nome da matriz, o número de linhas e o número de colunas da matriz (sua dimensão), o tipo de dados que será armazenado na matriz e as variáveis que serão utilizadas como índices ou subscritos na individualização de um valor do conjunto. É sobre este assunto que o presente artigo discorre, destacando a teoria e alguns exemplos de código.

Na programação de computadores, o tipo de dados de uma variável define os valores e as operações que podem ser realizadas sobre ela. Em uma variável declarada a partir dos tipos de dados simples (int, float, double, char e boolean), é permitido o armazenamento de um “único” valor por vez. Para agrupar e manipular “diversos” valores em uma mesma estrutura deve-se utilizar os tipos de dados estruturados, como por exemplo, os vetores.

Os vetores (ou arrays) são estruturas de dados que representam um conjunto de valores do mesmo tipo (estrutura homogênea), referenciáveis pelo mesmo nome e individualizados entre si através de sua posição dentro desse conjunto (variáveis indexadas).

Os programas de computador frequentemente recorrem aos arrays para realizar algum tipo de processamento de dados, como por exemplo, na realização de contagens e somatórios de valores.

A estrutura de dados array foi tema de outros três artigos da revista eletrônica Easy Java Magazine. No primeiro artigo, “Vetores – Parte 1”, publicado na Edição 16, foram apresentadas as características básicas das estruturas homogêneas de dados utilizadas em aplicações Java para agrupar e organizar um conjunto de elementos disponibilizando para cada valor uma posição de armazenamento. Já no segundo artigo, “Vetores – Parte 2”, publicado na Edição 19, foi apresentado como organizar a solução de problemas computacionais em módulos (em Java, métodos) e como declarar e utilizar os vetores como argumentos (parâmetros) em chamadas de métodos. No terceiro artigo “Vetores – Parte 3”, publicado na Edição 20, foi apresentado principalmente como desenvolver aplicações que utilizam arrays para classificação (organizar um conjunto de elementos em uma determinada ordem) e pesquisa (verificar a existência de um valor no conjunto).

Com os três artigos citados, foi concluída a abordagem sobre vetores unidimensionais em Java, que são assim denominados por utilizarem apenas um índice para indexar seus elementos. Neste quarto e último artigo sobre este tema, serão apresentados os vetores bidimensionais ou matrizes.

Matrizes (ou vetores bidimensionais)

Segundo DEITEL (2005, pág. 204), um array é um grupo de variáveis (elementos ou componentes) que contém valores que são todos do mesmo tipo (estruturas homogêneas de dados). Em Java os arrays são objetos, portanto são considerados tipos por referência. Internamente, o que em geral considera-se um array é, na verdade, uma referência a um objeto array na memória. Pode-se encontrar como sinônimos para arrays: variáveis indexadas, variáveis subscritas, tabela de dados em memória ou matrizes (arrays bidimensionais).

Em variáveis (ou objetos) do tipo array podem ser armazenados um grupo de valores, cada um associado a um número ou números (no caso de estruturas multidimensionais) que se referem à posição de armazenamento. As posições do valor são conhecidas como índices ou subscritos do valor. Portanto, os arrays são estruturas indexadas, em que cada valor que pode ser armazenado em certa posição (índice) é chamado de elemento do array.

O Java, como as linguagens C e C++, é uma linguagem com vetores zero-based. Isto significa que as posições do array, independente da dimensão, iniciam a numeração a partir do valor 0, portanto, um array unidimensional de tamanho 10 (dez) teria índices iniciados em 0 prosseguindo até 9. A referência a qualquer um dos elementos do array é realizada através de uma expressão de acesso ao array que inclui o nome do array seguido pelo índice ou índices do elemento particular entre colchetes ([]). Por exemplo:

  1. Declarando um array unidimensional com 10 elementos:
      int v[] = new int[10]; 

    Neste exemplo a referência v[i] corresponde ao “i-ésimo” elemento do array unidimensional v, sendo que o valor da variável i deve pertencer ao intervalo dos índices do array que é representado pela expressão lógica ((i >= 0) && (i < v.length)). Cada objeto array conhece o seu próprio tamanho e mantém essa informação no campo length. Portanto o limite v.length, usado na expressão lógica para indicar o final do intervalo do índice i, acessa o campo length do array v para determinar o seu tamanho.

  2. Declarando um array bidimensional 2 por 4 (2x4 = 8 elementos):
    int m[][] = new int[2][4]; 

    Segundo DEITEL (2005, pág. 223), os arrays com duas dimensões costumam ser utilizados para representar tabelas de valores que consistem nas informações dispostas em linhas e colunas. Para identificar um elemento da tabela particular, devem-se especificar dois índices. Por convenção, o primeiro identifica a linha do elemento e o segundo, sua coluna. Portanto, a referência m[i][j] corresponde ao elemento da “i-ésima” linha e “j-ésima” coluna do array bidimensional ...

    Quer ler esse conteúdo completo? Tenha acesso completo