Download - Arrays (vetores) em Java
![Page 1: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/1.jpg)
Arrays
Prof. Daniel Brandão
Metodologia e Linguagem de Programação
![Page 2: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/2.jpg)
1. Introdução
Em Java, arrays são objetos especiais. Uma classe dearrays pode ser especificada usando a notação
Tipo [ ]
Precisamente, esta notação demonstra a classe cujos
objetos são arrays, de qualquer tamanho, contendo
elementos do tipo ”Tipo”. As operações de uma classe
array são pré-definidas, não sendo possível a inclusão de
novas operações.
2
![Page 3: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/3.jpg)
1. Introdução
• Em Java, criamos um array através do comando new.
• Ex:
int [ ] numeros = new int[10]
Neste caso, criamos um array do tipo INT chamado
numeros. Com o comando NEW, definimos o tamanho
dele (no caso, 10).
3
![Page 4: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/4.jpg)
1. Introdução
• A variável numeros armazena a referência de um arraycriado na memória do computador atravésdo comando new. Na memória, o espaço ocupado poresse array está dividido em 5 “pedaços”iguais numerados de 0 até 4. Cada “pedaço” podearmazenar um valor do tipo int.
4
![Page 5: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/5.jpg)
1. Introdução
Como exemplo, considere a definição da
classe Banco contendo o atributo contas, o qual é
associado a uma classe de arrays de contas bancárias:
class Banco {
private int indice = 0;
private Conta[ ] contas;
}
5
![Page 6: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/6.jpg)
1. Introdução
Como nesta classe nenhum inicializador foi especificado,
um inicializador default é automaticamente introduzido
pelo Java. Para uma classe chamada Classe, este
inicializador é implicitamente declarado como:
Classe ();
Em particular, atributos do tipo int são inicializados por
default (padrão) com 0, enquanto atributos de tipo classe
são inicializados por default com a constante null. Esta
constante corresponde a referência nula; isto é, uma
referência que não aponta para nenhum objeto.
6
![Page 7: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/7.jpg)
1. Introdução
Dentro de um bloco, podemos declarar diversas variáveis e usá-las:
Isso pode se tornar um problema quando precisamosmudar a quantidade de variáveis a serem declaradasde acordo com um parâmetro. Esse parâmetro podevariar, como por exemplo, a quantidade de númerocontidos num bilhete de loteria. Um jogo simples possui 6números, mas podemos comprar um bilhete maiscaro, com 7 números ou mais.
7
![Page 8: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/8.jpg)
1. Introdução
Para facilitar esse tipo de caso podemos declarar umvetor (array) de inteiros:
int[] idades;
O int[] é um tipo. Uma array é sempre um objeto,portanto, a variável idades é uma referência. Vamosprecisar criar um objeto para poder usar a array. Comocriamos o objeto-array?
idades = new int[10];
8
![Page 9: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/9.jpg)
1. Introdução
• O que •fizemos anteriormente foi criar uma array de int
de 10 posições e atribuir o endereço no qual ela foi
criada. Podemos ainda acessar as posições do array:
• E para adicionar um elemento dentro deste array?
9
![Page 10: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/10.jpg)
1. Introdução
• O código anterior altera a sexta posição do array. No
Java, os índices do array vão de 0 a n-1, onde n é o
tamanho dado no momento em que você criou o array.
Se você tentar acessar uma posição fora desse alcance,
um erro ocorrerá durante a execução.
10
![Page 11: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/11.jpg)
2. Percorrendo um array
11
![Page 12: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/12.jpg)
2. Percorrendo um Array
• Quando criamos uma array de alguma classe, ela possui
referências. O objeto, como sempre, está na memória
principal e, na sua array, só • ficam guardadas as
referências (endereços).
• EX:
Conta[] minhasContas;
minhasContas = new Conta[10];
• Quantas contas foram criadas neste exemplo?
12
![Page 13: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/13.jpg)
2. Percorrendo um Array
• Nenhuma. Foram criados 10 espaços que você pode
utilizar para guardar uma referência a uma Conta. Por
enquanto, eles se referenciam para lugar nenhum
(null). Se você tentar:
System.out.println(minhasContas[0].saldo);
13
![Page 14: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/14.jpg)
2. Percorrendo um Array
• Um erro deverá ocorrer durante a execução! Pois, na
primeira posição da array, não há uma referência para
uma conta, nem para lugar nenhum. Você deve popular
sua array antes.
• EX:
14
![Page 15: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/15.jpg)
2. Percorrendo um Array
• Também podemos fazer isso de uma forma direta.
• EX:
15
![Page 16: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/16.jpg)
2. Percorrendo um Array
• Assim, nosso array estaria sendo criado da seguinte
maneira:
16
![Page 17: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/17.jpg)
2. Percorrendo um Array
• Agora, vamos ver como podemos “percorrer” dentro de
um array e retornar algo.
• EX: Criando e percorrendo um array.
17
![Page 18: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/18.jpg)
2. Percorrendo um Array
• Mas e se não fomos nós que criamos o array, como
saber o seu tamanho para poder percorre-lo?
18
![Page 19: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/19.jpg)
2. Percorrendo um Array
• Para que nosso for tenha um parâmetro que o limite,
todo array em Java possui um atributo chamado length.
(tamanho). Com ele, conseguimos definir que iremos
percorrer até o final, ou seja, percorrer o tamanho
inteiro do array.
19
![Page 20: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/20.jpg)
Exercícios
1) Crie uma classe em Java chamada Notas. Dentro dela,
crie um array com 4 posições e insira 4 notas de um
aluno, de 0 a 10. Depois, faça um retorno pelo
System.out.println imprimindo os valores contidos no
array.
20
![Page 21: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/21.jpg)
Exercícios
2) Crie uma classe em Java chamada Idades. Dentro dela,
crie um array com 10 posições e insira idades variadas 0 a
100 anos. Depois, faça um retorno pelo System.out.println
imprimindo os valores contidos no array criado.
21
![Page 22: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/22.jpg)
Exercícios
3) Crie uma classe em Java chamada Valores. Dentro dela,
crie um array com 20 posições e faça uma rotina que
includa valores múltiplos de 2 em cada posição. Depois,
faça um retorno pelo System.out.println imprimindo os
valores contidos no array criado.
22
![Page 23: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/23.jpg)
3. Utilizando foreach
• Para acessar todos os elementos de um array, é possível
aplicar o comando for com uma sintaxe um pouco
diferente.
• EX:
23
![Page 24: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/24.jpg)
4. Ordenando um array
• Considere um array de String criado para armazenar nomes
de pessoas. Podemos ordenar esses nomes através do
método Arrays.sort().
• EX:
24
![Page 25: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/25.jpg)
5. Duplicando um array
• Para copiar o conteúdo de um array para outro com maior
capacidade, podemos utilizar o método Arrays.copyOf().
• EX:
25
![Page 26: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/26.jpg)
6. Preenchendo um array
• Podemos preencher todas as posições de um array com um
valor específico utilizando o método Arrays.fill().
• EX:
26
![Page 27: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/27.jpg)
Exercícios
4) Crie uma classe que receba 3 nomes, passados como
argumentos na criação de um array chamado Pessoas, do tipo
String. Depois, imprima os resultados em ordem alfabética.
Tudo deve estar dentro do método main.
27
![Page 28: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/28.jpg)
Exercícios
5) Crie uma classe que receba 5 nomes, passados como
argumentos na criação de um array chamado Nomes, do tipo
String. Depois, faça um outro array contendo a cópia dos
valores contidos no array Nomes, mas aumentando seu
tamanho para 10 posições. Após, imprima os dois arrays. Tudo
deve estar dentro do método main.
28
![Page 29: Arrays (vetores) em Java](https://reader031.vdocuments.pub/reader031/viewer/2022021419/58a753fc1a28ab9f5a8b6959/html5/thumbnails/29.jpg)
Exercícios
6) Crie uma classe que preencha todas as posições de um
array contendo como valor o seu nome. Após, imprima o array
criado com todas as posições.
29