Laboratório I Mateus Raeder Arrays unidimensionais Arrays unidimensionais são objetos que permitem ao programador armazenar diversas variáveis do mesmo tipo Estas variáveis podem ser tanto tipos primitivos (int, char, ...) como outros objetos Array de “int” 0 1 2 3 4 5 6 7 8 9 Array de “char” A B C D E F G H I J Ana Rick André Rê Sofia Array de “Pessoa” Mateus Raeder – maio de 2010 Pedro João Maria José Milton Arrays bidimensionais A estrutura de arrays bidimensionais, também permite o armazenamento de diversas variáveis, porém, com uma estrutura similar a uma matriz: Estas variáveis podem ser tanto tipos primitivos (int, char, ...) como outros objetos Mateus Raeder – maio de 2010 Arrays bidimensionais Array bidimensional de int 1 4 8 0 67 9 1 8 7 8 0 23 1 12 0 0 1 55 5 4 86 6 8 10 0 23 9 7 67 19 23 9 12 4 1 132 4 Array bidimensional de boolean true true true false true true true true false false true false true true true true 8 0 2 Array bidimensional de Pessoa Antonio Luiz Mateus Raeder – maio de 2010 Diego Dover Maycon Michele Jefferson Karoline Leonardo Leonardo Pedro Rafael Rovian Shayane Arrays bidimensionais Cada item do array bidimensional é chamado de elemento Os elementos de um array bidimensional são associados a uma posição numérica (um par de valores) “colunas” do array 0 “linhas” do array 1 0 1 2 Antonio Diego Dover Luiz Maycon Michele 3 4 5 6 Jefferson Karoline Leonardo Leonardo Pedro Rafael Rovian Shayane 2 linhas por 7 colunas Um array bidimensional pode ser visto como um array de arrays Mateus Raeder – maio de 2010 Declarando arrays bidimensionais Arrays bidimensionais armazenam variáveis de um determinado tipo, e sua declaração ocorre da mesma forma de uma variável “comum”, porém utilizando um par de “[ ]” (colchetes) para a sua identificação. int[][] valorTotal; tipo do array nome do array ou int valorTotal[][]; Desta forma, arrays de qualquer tipo podem ser declarados: char[][] charArray; String[][] stringArray; double[][] doubleArray; float[][] floatArray; Mateus Raeder – maio de 2010 boolean[][] booleanArray; long[][] longArray; byte[][] byteArray; short[][] shortArray; Declarando arrays bidimensionais Exemplos: int[][] tamanho; //declara um array de inteiro double[][] nota; //declara um array de double char[][] letra; //declara um array de char Pessoa[][] p1; //declara um array de Pessoa Carta[][] c1; //declara um array de Carta Mateus Raeder – maio de 2010 Declarando e inicializando arrays bidimensionais Porém, declarar um array bidimensional não significa criá-lo efetivamente para utilização. A declaração indica ao compilador que existe um array bidimansional de determinado tipo e com determinado nome. Após a declaração, como fazer com que um array possa ser utilizado? indicar a quantidade de elementos do array bidimansional valorTotal = new int[10][2]; cria o array Mateus Raeder – maio de 2010 número de linhas número de colunas Inicializando arrays bidimensionais Exemplos: int[][] tamanho = new int[4][4]; tamanho int[] double[][] nota = new double[3][3]; 0 1 2 char[][] letra = new char[23][2]; Pessoa[][] p1 = new Pessoa[2][7]; Carta[][] c1 = new Carta[4][48]; Mateus Raeder – maio de 2010 0 1 2 3 3 Inicializando arrays bidimensionais É aconselhável inicializar os valores de cada elemento do array de acordo com a necessitade/vontade, atribuindo valores para todos os seus elementos: valorTotal[0][0] = 26; valorTotal[0][1] = 296; valorTotal[0][2] = 11; ... valorTotal[9][9] = 1997; ou for(int linha=0; linha<10; linha++) for(int coluna=0; coluna<10; coluna++) valorTotal[linha][coluna] = 0; Pode-se também declarar, criar e inicializar arrays diretamente, da seguinte forma: int[][] valorTotal = {{26, 296, 11}, {34, 58, 98}, {114, 754, 236}}; Mateus Raeder – maio de 2010 Inicializando arrays bidimensionais de Objetos Ao declarar e inicializar um array bidimensional de objetos, cada posição comporta-se como uma variável normal, ou seja, deve ser inicializada Exemplo: Pessoa[][] p = new Pessoa[2][7]; for(int linha=0; linha<2; linha++) for(int coluna=0; coluna<7; coluna++) p[linha][coluna] = new Pessoa(); Mateus Raeder – maio de 2010 Acessando elementos em arrays bidimensionais Os elementos do array bidimensionais são, então, acessados através de suas posições numéricas, que são pares numéricos: Array de String chamado pessoa Antonio Luiz Diego Dover Maycon Michele Jefferson Karoline Leonardo Leonardo Pedro Rafael Rovian Shayane System.out.println(“Valor da primeira posição é = ”+pessoa[0][0]); System.out.println(“Valor da última posição é = ”+pessoa[1][7]); String aux = pessoa[1][2]; for(int linha=0; linha<2; linha++) for(int coluna=0; coluna<7; coluna++) System.out.println(“Posição [”+linha+”][+coluna+”] é ”+pessoa[linha][coluna]); Mateus Raeder – maio de 2010 Acessando elementos em arrays bidimensionais Um array unidimensional possui a variável length, que retorna a quantidade de elementos do array. Assim, sabemos a quantidade de elementos do array. for(int i=0; i<array.length; i++) Entretanto, como saber as dimensões de um array bidimensional? Como saber a quantidade de linhas? Como saber a quantidade de colunas? Mateus Raeder – maio de 2010