Buscar

Arrays em Java

Prévia do material em texto

VETOR - PROFESSOR: EDIBERTO MARIANO 
 1 
VETOR (ARRAYS): dados e objetos 
- Arrays são variáveis que são agrupadas sob um nome em comum. É um grupo de variáveis (elementos 
ou componentes) que contém valores que são todos do mesmo tipo. 
- Tipos: são divididos em duas categorias: 
Tipos primitivos e tipos por referência 
- Os arrays são objetos, portanto são considerados tipos por referência. 
- O elementos de um array podem ser de tipos primitivos ou tipos por referência (multidimencionais). 
- Para referenciar um elemento particular em um array, especificamos o nome da referência para o array 
e o número de posição do elemento no array. O número de posição do elemento é chamado de índice 
ou subscrito do elemento. 
- O primeiro elemento de um array tem índice zero e às vezes é chamado zero-ésimo elemento. 
- Um índice de um array deve ser um inteiro não negativo. 
Exemplo: 
A[2, 4, 5, 6, 7, 8]; 
B[“Pedro","Maria","Victor","Mara"]; 
Declarando e criando arrays. 
Os objetos de array ocupam espaço de memória. Como outros objetos, os arrays são criados com a palavra-
chave new. Para criar um objeto array, o programador especifica o tipo dos elementos do array e o número de 
elementos como parte de uma expressão de criação de array que utiliza a palavra-chave new. Tal expressão 
retorna uma referência que pode ser armazenada em uma variável array. 
Exemplo: 
Criar um objeto array que contém 10 elementos tipo inteiro armazenando a referência do array na variável B. 
int B[ ] = new int[ 10 ]; 
ou 
int B[ ]; // Declara a variável array B 
B = new int[ 10 ]; // Cria o array B; Atribui à variável array B 10 posições tipo inteira. 
Obs. A cada elemento do array é dado um valor inicial quando é configurado com new; 
O valor depende do tipo do array: 
Arrays numéricos têm o valor 0; 
Arrays char têm o valor ´\0´; 
Arrays booleanos têm o valor false; 
Arrays String e todos os outros objetos são criados com o valor inicial null. 
Exemplo 
public class Array00 
{ public static void main(String[] args) 
 { final int array_length = 4; //Declara a constante array_lenght, com 4 posições 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 2 
 int A[ ] = new int[array_length]; //Cria o array A tipo inteiro 
// int A[ ] = new int[4]; //Cria o array A tipo inteiro 
// exibe o array vazio 
 System.out.println("Indice Valor"); 
// for(int i=0; i<4; i++) 
 for(int i=0; i<array_length; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } 
 } 
} 
Resposta: 
 Índice Valor 
 0 0 
1 0 
2 0 
3 0 
public class Array00 
{ public static void main(String[] args) 
 { //final String array_length = 4; //Dá erro 
 //String A[] = new String[array_length]; //Dá erro 
 float A[] = new float[4]; //Cria o array A tipo inteiro 
 //exibe o array vazio 
 System.out.println("Indice Valor"); 
// for(int i=0; i<4; i++) 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } }} 
Resposta: 
 Índice Valor 
 0 0.0 
1 0.0 
2 0.0 
3 0.0 
public class Array00 
{ public static void main(String[] args) 
 { //final String array_length = 4; //Dá erro 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 3 
 //String A[] = new String[array_length]; //Dá erro 
 double A[] = new double[4]; //Cria o array A tipo inteiro 
 //exibe o array vazio 
 System.out.println("Indice Valor"); 
// for(int i=0; i<4; i++) 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } }} 
Resposta: 
 Índice Valor 
 0 0.0 
1 0.0 
2 0.0 
3 0.0 
public class Array00 
{ public static void main(String[] args) 
 { final char array_length = 4; //Declara a constante array_lenght, com 4 posições 
 char A[] = new char[array_length]; //Cria o array A tipo inteiro 
// int A[] = new int[4]; //Cria o array A tipo inteiro 
 //exibe o array vazio 
 System.out.println("Indice Valor"); 
// for(int i=0; i<4; i++) 
 for(int i=0; i<array_length; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } }} 
Resposta: 
 Índice Valor 
 0 
1 
2 
3 
 
public class Array00 
{ public static void main(String[] args) 
 { //final String array_length = 4; //Dá erro 
 //String A[] = new String[array_length]; //Dá erro 
 String A[] = new String[4]; //Cria o array A tipo inteiro 
 //exibe o array vazio 
 System.out.println("Indice Valor"); 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 4 
// for(int i=0; i<4; i++) 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } 
 } 
} 
Resposta: 
 Índice Valor 
 0 null 
1 null 
2 null 
3 null 
 
Inicialização de um array 
int A[ ] = {10, 20, 30, 40 }; 
 
Exercício 
Codifique um programa em java que: 
 a) Leia via teclado 4 numeros inteiros e armazene em um array 
 b) Depois dos números armazenados, exiba-os com suas respectivas posições na tela 
import java.io.*; 
public class Array01 
{ public static void main(String[] args) 
 { //final int array_length = 4; //Declara a constante array_lenght, com 4 posições 
 //int A[] = new int[array_length]; //Cria o array A tipo inteiro 
 int A[] = new int[4]; //Cria o array A tipo inteiro 
 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
 try 
 { //for(int i=0; i<array_length; i++) //ou assim 
 for(int i=0; i<4; i++) 
 { System.out.print("Digite o numero na posicao "+i+" do array :"); 
 A[i] = Integer.parseInt(br.readLine()); 
 } 
 } 
 catch(IOException e) 
 { 
 System.out.println("Erro de entrada"+e); 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 5 
 } 
 //for(int i=0; i<array_length; i++) // ou assim 
 for(int i=0; i<4; i++) 
 { System.out.println("Numero da posicao "+i+" do array :"+A[i]); 
 } 
 } 
} 
Outro exemplo. 
public class Array00 
{ public static void main(String[] args) 
 { 
 String A[] = {"Pedro","Maria","Victor","Mara"}; 
 exibe o conteúdo do array em suas posições 
 System.out.println("Indice Valor"); 
// for(int i=0; i<4; i++) 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } 
 } 
} 
Outro exemplo. 
Codifique um programa em java que: 
 a) Leia via teclado 4 nomes e armazene-os em um array 
 b) Depois dos nomes armazenados, exiba-os na tela 
import java.io.*; 
public class Array02 
{ public static void main(String[] args) 
 { //final int array_length = 4; //Declara a constante array_lenght, com 4 posições 
 //int A[] = new int[array_length]; //Cria o array A tipo inteiro 
 String A[] = new String[4]; //Cria o array A tipo inteiro 
 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
 try 
 { //for(int i=0; i<array_length; i++) //ou assim 
 for(int i=0; i<4; i++) 
 { System.out.print("Digite o nome na posicao "+i+" do array :"); 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 6 
 A[i] = (br.readLine()); 
 } 
 } 
 catch(IOException e) 
 { 
 System.out.println("Erro de entrada"+e); 
 } 
 //for(int i=0; i<array_length; i++) // ou assim 
 for(int i=0; i<4; i++) 
 { System.out.println("Nome da posicao "+i+" do array : "+A[i]); 
 } 
 } 
} 
Outro exemplo. 
Codifique um programa em java que:a) Leia via teclado 4 numeros inteiros e armazene em um array 
 b) Depois dos números armazenados, crie um segundo array, em que cada valor dos 
 elementos seja respectivo o dobro do elemento da mesma posição do array A 
import java.io.*; 
public class Array03 
{ public static void main(String[] args) 
 { //final int array_length = 4; //Declara a constante array_lenght, com 4 posições 
 //int A[] = new int[array_length]; //Cria o array A tipo inteiro 
 int A[] = new int[4]; //Cria o array A tipo inteiro 
 int B[] = new int[4]; //Cria o array A tipo inteiro 
 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
 try 
 { //for(int i=0; i<array_length; i++) //ou assim 
 for(int i=0; i<4; i++) 
 { System.out.print("Digite o numero na posicao "+i+" do array :"); 
 A[i] = Integer.parseInt(br.readLine()); 
 B[i] = A[i]*2; //Armazena o conteúdo da posição do array A*2 na posição do array B 
 } 
 } 
 catch(IOException e) 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 7 
 { 
 System.out.println("Erro de entrada"+e); 
 } 
 System.out.println("\nArray A"); 
 //for(int i=0; i<array_length; i++) // ou assim 
 for(int i=0; i<4; i++) 
 System.out.println("Numero da posicao "+i+" do array :"+A[i]); 
 System.out.println("\nArray B"); 
 for(int i=0; i<4; i++) 
 System.out.println("Numero da posicao "+i+" do array :"+B[i]); 
 } 
} 
COPIA DOS ELEMENTOS DE UM ARRAY PARA OUTRO. 
- Para copiar realmente arrays, é necessário utilizar o método arraycopy da classe System: 
System.arraycopy (arrayorigem, indiceorigem, arraydestino, indicedestino, quantidade); 
Exemplo: 
public class Array00 
{ public static void main(String[] args) 
 { 
 int A[] = {2,3,4,6}; 
 int B[] = new int[4]; 
 for(int i=0; i<4; i++) 
 System.arraycopy (A, i, B, i, 1); 
// exibe o conteúdo do array A em suas posições 
 System.out.println("ARRAY A"); 
 System.out.println("Indice Valor"); 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } 
// exibe o conteúdo do array B em suas posições 
 System.out.println("ARRAY B"); 
 System.out.println("Indice Valor"); 
// for(int i=0; i<4; i++) 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+B[i]); 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 8 
 } 
 } 
} 
Exercício 
Codifique um programa em Java que: 
- Crie uma série de fibonacci em que, o tamanho da série é informada pelo 
usuário; 
- Após a criação da série, será pesquisado e exibido na tela se um 
determinado número informado pelo usuário existe na mesma, caso o 
numero pesquisado não existir na série, será exibido a msg "numero 
procurado não existe na tela"; 
Obs. Caso o número pesquisado seja igual ao número 1, além do mesmo ser 
exibido duas vezes, deverá ser exibido a mensagem, o número pesquisado 
existe na série duas vezes. 
Resposta: 
import java.util.Scanner; 
public class fibonacci 
{ public static void main(String[] args) 
 { int penultimo, ultimo, novo, tam, controle=0, num, achou = 0, qtde=0; 
 ultimo = 1; 
 penultimo = 0; 
 System.out.print("Qual o tamanho da serie? = "); 
 Scanner input = new Scanner(System.in); 
 tam = input.nextInt(); 
 int vetA[] = new int[tam]; 
 System.out.print(penultimo); 
 vetA[controle]=penultimo; 
 controle++; 
 while(controle < tam) 
 { System.out.print(" "+ultimo); 
 vetA[controle]=ultimo; 
 novo = ultimo + penultimo; 
 penultimo = ultimo; 
 ultimo = novo; 
 controle++; 
 } 
 System.out.print("\nQual o numero a ser pesquisado na serie? = "); 
 Scanner a = new Scanner(System.in); 
 num = a.nextInt(); 
 for(int i=0;i<tam;i++) 
 { if(num == vetA[i]) 
 { 
 System.out.print(" " +vetA[i]); 
 achou = 1; 
 if(vetA[i] == 1) 
 qtde++; 
 } 
 } 
 if(achou == 0) 
 System.out.println("\nNumero procurado nao existe na serie"); 
 if(qtde > 0) 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 9 
 System.out.println("\nNumero procurado existe duas vezes na serie"); 
 
 } 
} 
 
 
ARRAYS MULTIDIMENSIONAIS 
- Os arrays multidimensionais (matrizes) em JAVA são declarados da seguinte forma (os cálculos e 
manipulações são feitos de forma semelhante aos arrays unidimensionais); Nos arrays multimensionais 
cada elemento é referenciado através de duas coordenadas, por exemplo (x,y). 
Ex: 
int[][] matrizA = new int[4][4]; 
 
exemplo 
public class Ex05 
{ public static void main(String[] args) 
 { 
 int A[][] = new int[4][4]; 
// exibe o conteúdo do array A em suas posições 
 System.out.println("ARRAY A"); 
 System.out.println("Indice Valor"); 
 for(int i=0; i<4; i++) 
 { for(int j=0; j<4; j++) 
 { System.out.println(+i+","+j+" "+A[i][j]); 
 } 
 } 
 } 
} 
Resposta 
Indice Valor 
0,0 0 
0,1 0 
0,2 0 
0,3 0 
1,0 0 
1,1 0 
1,2 0 
1,3 0 
2,0 0 
2,1 0 
2,2 0 
2,3 0 
3,0 0 
3,1 0 
3,2 0 
3,3 0 
0,0 0 
0,0 0 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 10 
0,0 0 
0,0 0 
0,0 0 
0,0 0 
0,0 0 
Outro exemplo 
public class Ex05 
{ public static void main(String[] args) 
 { 
 int A[][] = new int[4][4]; 
 
 System.out.println("ARRAY A"); 
 for(int i=0; i<4; i++) 
 { System.out.println("\n"); 
 for(int j=0; j<4; j++) 
 { System.out.print(+A[i][j]); 
 System.out.print(" "); 
 } 
 } 
 } 
} 
Resposta 
0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 
 
Exercício 
Codifique um programa em java que: 
 a) Leia via teclado 4 numeros inteiros e armazene em um array Multimensional 
 b) Depois dos números armazenados, exiba-os na tela 
import java.io.*; 
public class Ex06 
{ public static void main(String[] args) 
 { //final int array_length = 2; //Declara a constante array_lenght, com 4 posições 
 //int A[][] = new int[array_length]; //Cria o array A tipo inteiro 
 int A[][] = new int[2][2]; //Cria o array A tipo inteiro 
 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 
 try 
 { //for(int i=0; i<array_length; i++) //ou assim 
 for(int i=0; i<2; i++) 
 { for(int j=0; j<2; j++) 
 { System.out.print("Digite o numero na posicao "+i+","+j+" do array :"); 
 A[i][j] = Integer.parseInt(br.readLine()); 
 } 
 } 
 } 
 catch(IOException e) 
 { 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 11 
 System.out.println("Erro de entrada"+e); 
 } 
 //for(int i=0; i<array_length; i++) // ou assim 
 for(int i=0; i<2; i++) 
 { System.out.println("\n"); 
 for(int j=0; j<2; j++) 
 { System.out.print(+A[i][j]); 
 System.out.print(" "); 
 } 
 } 
 } 
} 
 
Passando array e elementos de array como argumentos para métodos 
public class Array07 
{ 
 public static void main(String[] args) 
 { //Cria array A 
 int A[] = {2,3,4,6}; 
 //exibe o conteúdo do array A sem modificações em suas posições 
 System.out.println("Indice Valor"); 
 for(int i=0; i<4; i++){ System.out.println(+i+ " "+A[i]); 
 } 
 System.out.println("\n"); 
 //invoca o método modificaArray, passando o array A como um argumento 
 modificaArray(A); //Passa a referência do array A para o método modificaArray 
 
 // exibe o conteúdo do array A modificado e suas posições 
 System.out.println("Cada elemento do array original vezes 2"); 
 System.out.println("Indice Valor"); 
 for(int i=0; i<4; i++) 
 { System.out.println(+i+ " "+A[i]); 
 } 
 System.out.println("\n"); 
 // invoca o método modificaElemento, passando o A[3] como um argumento 
 // Passa a referência do array A[3] para o método modificaElemento 
 modificaElemento( A[3]); 
 System.out.print("Elemento 3 do array A vezes 3 = "); 
 System.out.println(" = "+A[3]); 
 System.out.println("\n"); 
 }// fim de main 
 
 //Multiplica cada elemento do array A por 2 
 //O método modificaArray recebe uma cópia da referência array A e utiliza 
 //essa referência para multiplicar cada um dos elementos do array A por 2. 
 //para provar que os elementos do array A foram modificados. 
 public static void modificaArray( int B[] ) 
 { for(int i=0; i<B.length; i++) 
VETOR - PROFESSOR: EDIBERTO MARIANO 
 12 
 B[i] *= 2; 
 } //Fim do método modificaArray 
 
 // Método modificaElemento 
 // Multiplica o argumento A[3] por 3 
 public static void modificaElemento( int elemento ) 
 { 
 elemento *= 3; 
 } 
} 
Saída:

Continue navegando