Arrays (vetores) em Java

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

Transcript of Arrays (vetores) em Java

Page 1: Arrays (vetores) em Java

Arrays

Prof. Daniel Brandão

Metodologia e Linguagem de Programação

Page 2: Arrays (vetores) em Java

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

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

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

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

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

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

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

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

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

2. Percorrendo um array

11

Page 12: Arrays (vetores) em Java

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

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

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

2. Percorrendo um Array

• Também podemos fazer isso de uma forma direta.

• EX:

15

Page 16: Arrays (vetores) em Java

2. Percorrendo um Array

• Assim, nosso array estaria sendo criado da seguinte

maneira:

16

Page 17: Arrays (vetores) em Java

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

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

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

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

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

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

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

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

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

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

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

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

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