Arrays (vetores) em Java
-
Upload
daniel-brandao -
Category
Education
-
view
724 -
download
0
Embed Size (px)
Transcript of Arrays (vetores) em Java

Arrays
Prof. Daniel Brandão
Metodologia e Linguagem de Programação

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

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

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

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

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

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

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

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

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

2. Percorrendo um array
11

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

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

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

2. Percorrendo um Array
• Também podemos fazer isso de uma forma direta.
• EX:
15

2. Percorrendo um Array
• Assim, nosso array estaria sendo criado da seguinte
maneira:
16

2. Percorrendo um Array
• Agora, vamos ver como podemos “percorrer” dentro de
um array e retornar algo.
• EX: Criando e percorrendo um array.
17

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

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

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

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

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

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

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

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

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

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

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

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