Arrays Os arrays são estruturas de dados que consistem em itens de dados relacionados do mesmo tipo. São entidades estáticas no sentido de que, uma vez criadas, mantém o mesmo tamanho, embora uma referência de array possa ser atribuída a um novo array de tamanho diferente. O array é um grupo de posições (variáveis, elementos ou componentes) contíguas de memória que possuem o mesmo nome e o mesmo tipo. Para referir-se a uma localização ou elemento particular no array, especificamos o nome do array e o número da posição (índice) do elemento particular no array. Um array armazena múltiplos itens de um mesmo tipo de dado em um bloco contíguo de memória, dividindo-o em certa quantidade de posições. Exemplo: 0 1 2 Numero 1 2 3 O primeiro elemento em todos os arrays tem o número de posição zero, [0]. O segundo elemento do array é [1], o sétimo elemento do array é [6] e, em geral, o i-ésimo elemento do array é [i 1]. Os nomes de array seguem as mesma convenções que outros nomes de variável. O número de posição entre colchete é chamado de índice. O índice deve ser um inteiro ou uma expressão de tipo inteiro. Exemplo: um array de 12 elementos c[0] -45 Nome do array Índice do elemento no array c[1] 6 c[2] 0 c[3] 72 c[4] 1543 c[5] -89 c[6] 0 c[7] 52 c[8] -3 c[9] 11 c[10] 600 c[11] 8 Declaração e criação de arrays Os arrays são objetos que ocupam espaço na memória. Todos os objetos em Java devem ser alocados dinamicamente com o operador new. Para alocar 12 elementos para o array de inteiros c, use a declaração: int c[] = new int [12]; Quando se aloca um array, cada elemento do array recebe por default um valor zero para as variáveis numéricas do tipo de dados primitivo, false para variáveis boolean ou null para referência (tipo não-primitivo). Um programa pode alocar memória para vários arrays com uma única declaração. Por exemplo, reserva 100 elementos para o array String b e 27 elementos para o array String x: String b[] = new String [100], x[] = new String[27];
Ao declarar um array, o tipo array e os colchetes podem ser combinados no início da declaração para indicar que todos os identificadores representam arrays. Exemplo que declara array1 e array2 como arrays de valores double: double[] array1, array2; Exemplo, declara e reserva 10 elementos para array1 e 20 elementos para array2: double [] array1 = new double [10], array2 = new double [20]; Utilização de arrays Criação de um array de 10 elementos int, que são inicialmente zero. public class InicializaArray { //declara o array identificado, cria o espara para o array int array[] = new int [10]; //titulos de coluna System.out.printf("%s%8s\n","Indice","Valor"); System.out.printf("%5d%8d\n",cont,array[cont]); //fim de main //fim da classe O mesmo exemplo com algumas alterações visuais: //pacote de extensao Java public class InicializaArray2 { //declara referencia para um array e aloca-o dinamicamente int array[] = new int[10]; //acrescenta o valor de cada elemento do array ao String saida saida += cont +"\t"+array[cont]+"\n"; JOptionPane.showMessageDialog(null,saidaArea, "Inicialização de um array de valores inteiros", Cria um array e inicializa seus elementos com um inicializador de array. public class inicializaarray3 { //lista de incializadores especifica o valor de cada elemento int array[]= {32,27,64,18,59,41,9,7,6,73; //titulos de coluna System.out.printf("%s%8s\n", "Indice","Valor"); System.out.printf("%5d%8d\n", cont,array[cont]); //fim de main //dim da classe O mesmo exemplo com alterações visuais. public class inicializaarray4 {
saida /*lista de inicializadores especifica a quantidade * de elementos e o valor para cada elemento */ int array[] = {32, 27, 64, 18, 59, 41, 9, 7, 6, 73 //acrescenta o valor de cada elemento do array ao String saida += cont + "\t" + array[cont]+"\n"; JOptionPane.showMessageDialog(null,saidaArea, "Inicializar um Array com uma Declaração", Programa cria um array de 10 elementos e atribui a cada elemento um dos inteiros pares de 2 a 20. Em seguida, o aplicativo exibe o array em formato tabular. public class inicializaarray5 { //declara a constante final int ARRAY_LENGTH = 10; //cria o array int array[] = new int[array_length]; //calcula o valor de cada elemento do array array[cont] = 2 + 2 * cont; //titulos da coluna System.out.printf("%s%8s\n","Indice","Valor"); System.out.printf("%5d%8d\n", cont, array[cont]); //fim de main //fim da classe O mesmo exemplo acima em visualização gráfica. public class incializaarray6 { final int ARRAY_LENGTH = 10; //referenda para array de int e aloca array int array[] = new int[array_length]; //calcula o valor para cada elemento do array array[cont] = 2 + 2 * cont; saida += cont +"\t"+array[cont]+"\n"; JOptionPane.showMessageDialog(null, saidaarea, "Inicializa Números de 2 a 20", Aplicativo que soma os valores contidos em um array de inteiro de 10 elementos. O programa declara, cria e inicializa o array. public class somaarray {
int array[]={78,86,49,1,38,87,19,67,87; int total = 0; //adiciona o valor de cada elemento ao total total += array[cont]; System.out.printf("Total de elementos do array: %d\n", total); //fim de main //fim da classe O mesmo exemplo do aplicativo acima, porém em visualização de caixa de mensagem. public class somaarray1 { int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10; int total = 0; //adiciona o valor de cada elemento a total total += array[cont]; JOptionPane.showMessageDialog(null, "Total de elementos do array: "+total, "Soma dos elementos de um array", Exemplo que utiliza gráficos de barras para exibir dados de array graficamente. Considere que um professor queira representar gráficos para visualizar a distribuição de notas da prova. Suponha que as notas de um exame fossem 78, 86, 49, 100, 38, 87, 91, 67 e 78. O aplicativo armazena esses dados de distribuição de nota em um array de 11 elementos, sendo cada um correspondente a uma categoria de notas. Por exemplo: Array [0] indica o intervalo de notas de 0-9 Array[7] indica o intervalo de notas de 70-79 Array[10] indica o número de notas 100 public class arraygrafico { int array[] = {0,0,0,1,1,0,1,2,2,1,1; System.out.println("Distribuição de notas"); //para cada elemento de array, gera saida de uma barra do grafico { //gera saida do rotulo de barra {"00-09: ",...,"90-99: ","100: " if (cont == 10) System.out.printf("%5d: ", 100); else System.out.printf("%02d-%02d: ", cont * 10, cont * 10 +9); //imprime a barra de asteriscos for (int estrela = 0; estrela < array[cont];estrela++) System.out.print("*"); System.out.println(); //fim do for externo //fim do main //fim da classe
O aplicativo lê números de um array e exibe as informações sob a forma de um gráfico de barras (histograma). O programa exibe cada número seguido por uma barra que consiste naquela quantidade de asteriscos. public class histograma { int array[] = {19, 3, 15, 7, 11, 9, 13, 5, 17, 1; String saida = "Elemento\tValor\tHistograma"; //para cada elemento do array, desenha uma barra no histograma { saida += "\n" + cont +"\t" + array[cont] + "\t"; //imprime uma barra de asteriscos for (int estrelas = 0; estrelas < array[cont]; estrelas++) saida += "*"; JOptionPane.showMessageDialog(null, saidaarea, "Programa que Exibe Histograma",