Revisão de Array Profa. Patrícia A. Jaques http://www.inf.unisinos.br/~pjaques/ [email protected] 8. Array • Arrays são grupos de variáveis do mesmo tipo. • As arrays podem armazenar variáveis de qualquer tipo (tipo de dado primitivo ou objetos); • Todos os valores devem ser de um único tipo de dado. Profa. Patrícia Jaques - Programação I 2 Criando um Array int diaMes [ ] = new int [4]; int [ ]diaMes = new int [4]; Elementos do Vetor Posições do Vetor 0 0 0 1 0 2 0 3 int diaMes [ ]; // declarando um array de inteiros (apontador) diaMes = new int [4]; //criando um array de int com 4 posições Profa. Patrícia Jaques - Programação I 3 Inicializando um array class Array { public static void main (String args [ ]) { int diaMes [ ] = new int [4]; diaMes [0] = 31; int diaMes [ ] = {31, 28, 31, 30 }; diaMes [1] = 28; diaMes [2] = 31; diaMes [3] = 30; System.out.println (“Janeiro tem “+ diaMes[0] + “dias.”); } // do main } // da class Profa. Patrícia Jaques - Programação I 4 Inicialização default • Arrays de tipos primitivos de dados são inicializados por default. int diaMes [ ] = new int [4]; •Inicializando um array com o laço for: int vetor [ ] = new int [4]; for (int i=0; i<4; i++) vetor [i] = -1; Profa. Patrícia Jaques - Programação I 5 Acessando um elemento de uma Array • int v [ ] = {2, 4, 6, 6}; Elementos do Vetor Posições do Vetor 2 0 4 1 6 2 6 3 • v [2] = 3; Elementos do Vetor Posições do Vetor 2 0 4 1 3 2 6 3 Profa. Patrícia Jaques - Programação I 6 Array • Não é possível redimensionar um array, mas apenas elimina-la da memória e criar uma nova instância. Por exemplo, • int v[ ] = {0, 1, 2, 3}; //criando um array de 4 posições e inicializado • v = new int [2]; // fazendo com que v aponte para um novo array de 2 posições • Assim, quando fizemos v = new int [2], perdemos todos os valores armazenados anteriormente. Profa. Patrícia Jaques - Programação I 7 Obtendo tamanho de um array • int v [ ] = new int [10]; • int tam = v.length; tam. da array=10 Profa. Patrícia Jaques - Programação I 8 Copiando o conteúdo de um array para outro array • System.arraycopy (sourceArray, sourcePosition, destinationArray, destinationPosition, numbersOfEntryToCopy); System.arraycopy (vet1, 2, vet2, 1, 5); Profa. Patrícia Jaques - Programação I 9 Método clone • Método clone para array: Profa. Patrícia Jaques - Programação I 10 Arrays Multidimensionais • double matriz [ ] [ ] = new double [4] [4]; 0 1 2 3 0 1 2 3 Profa. Patrícia Jaques - Programação I 11 Inicializando um array multidimensional int m [ ] [ ] = { {0, 1, 2, 3} , {4, 5, 6, 7}, {8, 9, 10, 11}, {12, 13, 14, 15} }; int m[][] = new int[1][3]; m [0] [0] = 0; m[0] [1] = 1; m [0] [2] = 2; int m[][] = new int [3][4]; for (int i =0; i<m.length; i++) for (int j=0; j<m[i].length; j++) m [i] [j] = 0; Profa. Patrícia Jaques - Programação I 12 Inicializando um array multidimensional • Como um array multidimensional é um array de array, podemos determinar tamanhos diferentes. int mat [ ] [ ] = new int [2] [ ]; mat [0] = new int [4]; mat [1] = new int [3]; 0 1 2 3 0 1 Profa. Patrícia Jaques - Programação I 13 Array de Objetos Data d [ ] = new Data [3]; d [0] = new Data ( ); d [1] = new Data ( ); d [2] = new Data ( ); for (int i=0; i<d.length; i++) d [i] = new Data ( ); Profa. Patrícia Jaques - Programação I 14 Exercícios • Crie a classe Aluno. Um aluno tem nome (String), CPF (string), turma (int). Crie métodos modificadores e de acesso para a classe Aluno. • Faça a classe Disciplina que é composta por um array de objetos do tipo Aluno. Crie métodos para inserir alunos, remover alunos, listar todos os alunos e verificar o aluno mais velho. Profa. Patrícia Jaques - Programação I 15