P R O F . P A U L O D E T A R S O J R .
VETORES E MATRIZES
Atualizado em 30/03/2016
OBJETIVOS
• Ao final desta aula, o aluno deverá:
• Declarar e criar vetores
• Acessar elementos de um vetor
• Determinar o numero de elementos em um vetor
• Declarar e criar vetores multi-dimensionais
INTRODUÇÃO
• Suponha que tenhamos três variáveis do tipo int com diferentes identificadores para cada variável
• int numero1;
• int numero2;
• int numero3;
• numero1 = 1;
• numero2 = 2;
• numero3 = 3;
INTRODUÇÃO
• Podemos utilizar uma variável para armazenar e manipular uma lista de dados de forma mais eficiente.
• Este tipo de variável é chamada de vetor
• Um vetor armazena múltiplos itens de dados do mesmo tipo (tipos primitivos ou objetos de uma mesma classe) em um bloco continuo de memória, dividido em certa quantidade de casas
v[0] v[1] v[2] v[3] v[4]
v
DECLARANDO VETORES
• Escreve-se o tipo de dado seguido por colchetes [ ] e por um identificador
• int [] idades;
• int idades[];
CRIANDO VETORES
• Criar o vetor e especificar seu tamanho com um parâmetro no construtor
• Escrever a palavra-chave new, definir o tipo de dado seguido por colchetes contendo a
quantidade de elementos do vetor:
// declaração int idades[];
// construindo um objeto idades = new int[100];
ou
// declarando e construindo um objeto int idades[] = new int[100];
CRIANDO VETORES
CRIANDO VETORES
• Pode-se, também, construir um vetor ao iniciá-lo diretamente com dados
• int vet[] = {1, 2, 3, 4, 5};
• Este código declara e inicializa um vetor de inteiros
com cinco elementos (inicializados com os valores
1, 2, 3, 4, e 5)
EXEMPLOS
boolean resultados[] = {true, false, true, false};
double graus[] = {100, 90, 80, 75, 30};
String dias[] = {“Seg”, “Ter”, “Qua”, “Qui”,
“Sex”, “Sab”, “Dom”};
CRIANDO VETORES
• Atenção: Um vetor pode ter exatamente o
tamanho necessário, ou seja, o tamanho do vetor pode ser lido, atribuído ou calculado.
• String nome[];
• int n = 3;
• nome = new String[n];
• nome[0] = “Ze”;
• nome[1] = “Jó”;
• nome[2] = “Lu”
• Neste código o tamanho do vetor é definido em
tempo de execução
EXEMPLO
LerTamanhoVetor.java
1 import javax.swing.JOptionPane;
23 public class LerTamanhoVetor 4 {
5 public static void main(String[] args)
6 {
7 int v[] ;
8 String sTam;
9 int tam;
1011 sTam = JOptionPane.showInputDialog("Tamanho do vetor");
12 tam = Integer.parseInt(sTam);
1314 // Construir o vetor do tamanho desejado 15 v = new int[tam];
16 for (int i = 0; i < tam; i++) 17 v[i] = 2*(i + 1);
18 }
19 }
ACESSANDO ELEMENTOS DO VETOR
• Utilizar um número chamado de índice
• Índice numérico
• Atribuído a cada elemento do vetor
• Permite o acesso individual a seus elementos
• Iniciado com zero e progride sequencialmente até o fim do vetor
• Índices dentro de um vetor vão de 0 até (tamanhoVetor - 1)
ACESSANDO ELEMENTOS DO VETOR
• int idades[] = new int[100];
• idades[0] = 10;
• System.out.printf(“%d”,idades[99]);
ACESSANDO ELEMENTOS DO VETOR
• O valor armazenado de cada elemento do vetor será inicializado com zero para vetores com o tipo de dado numérico
• Para referenciar os elementos em vetores de objetos, como as Strings, estes NÃO serão
inicializados com brancos ou strings vazias “ ”.
• Em vez disso, deve-se preencher explicitamente cada elemento deste vetor
ACESSANDO ELEMENTOS DO VETOR
O seguinte código de exemplo mostra como imprimir todos os elementos de um vetor
--- ExemploVetor.java
1 public class ExemploVetor
2 {3 public static void main(String[] args)
4 {
5 int [] idades = new int[100];
6 for( int i=0; i<100; i++ )
7 {
8 System.out.print( idades[i] );
9 }
10 }
11 }
TAMANHO DE UM VETOR
• ExemploVetor.java
1 public class ExemploVetor
2 {3 public static void main(String[] args)
4 {
5 int [] idades = new int[100];
6 for( int i=0; i<idades.length; i++ )
7 {
8 System.out.print( idades[i] );
9 }
10 } 11 }
OPERAÇÕES COM VETORES
•
Após um vetor ter sido criado não é possível
redimensioná-lo. Se isto for necessário, deve-se criar um outro vetor da dimensão desejada e fazer o vetor
antigo apontar para o novo.
•
A classe System oferece um método especial:
arraycopy(), que permite realizar cópias de vetores.
OPERAÇÕES COM VETORES
• Outra forma de copiar um vetor é produzir um
“clone” do vetor
VETORES MULTIDIMENSIONAIS:
MATRIZES
• Vetores podem ter diversas dimensões. Um vetor bidimensional é conhecido como Matriz
• São implementados como vetores dentro de vetores
• São criados adicionando-se mais um conjunto de colchetes após o nome do vetor declarado
// array inteiro de 512 x 128 elementos int[][] twoD = new int[512][128];
// array de caracteres de 8 x 16 x 24 char[][][] threeD = new char[8][16][24];
// array de String de 4 linhas x 2 colunas String[][] dogs = {{ “terry”, “brown” },
{ “Kris”, “white” }, { “toby”, “gray”}, { “fido”, “black”}
};
VETORES MULTIDIMENSIONAIS:
MATRIZES
• É possível construir vetores multidimensionais não- retangulares Java.
• Exemplos:
VETORES MULTIDIMENSIONAIS:
MATRIZES
• Acessar um elemento em um vetor multi-
dimensional é idêntico a acessar elementos de um vetor unidimensional
• Acessando o primeiro elemento na primeira linha da matriz:
• nomeMatriz[0][0];
DÚVIDAS
REFERÊNCIAS BIBLIOGRÁFICAS
• Claro D. B. e Sobral J. B. M. PROGRAMAÇÃO EM JAVA
• Java - Como Programar - 8ª Ed. 2010
• Disponível em:
http://olimpiada.ic.unicamp.br/extras/cursoC/Cap 06-RepeticaoControle-texto.pdf Acesso em:
12/03/2016
• While. Disponível em:
http://www.tiexpert.net/programacao/java/while.
php Acesso em: 12/03/2016
P R O F . P A U L O D E T A R S O J R .