Anúncio
Anúncio

Mais conteúdo relacionado

Apresentações para você(20)

Anúncio

Mais de Daniel Brandão(20)

Último(20)

Anúncio

Arrays (vetores) em Java

  1. Arrays Prof. Daniel Brandão Metodologia e Linguagem de Programação
  2. 1. Introdução Em Java, arrays são objetos especiais. Uma classe de arrays 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
  3. 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
  4. 1. Introdução • A variável numeros armazena a referência de um array criado na memória do computador através do comando new. Na memória, o espaço ocupado por esse array está dividido em 5 “pedaços” iguais numerados de 0 até 4. Cada “pedaço” pode armazenar um valor do tipo int. 4
  5. 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
  6. 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
  7. 1. Introdução Dentro de um bloco, podemos declarar diversas variáveis e usá-las: Isso pode se tornar um problema quando precisamos mudar a quantidade de variáveis a serem declaradas de acordo com um parâmetro. Esse parâmetro pode variar, como por exemplo, a quantidade de número contidos num bilhete de loteria. Um jogo simples possui 6 números, mas podemos comprar um bilhete mais caro, com 7 números ou mais. 7
  8. 1. Introdução Para facilitar esse tipo de caso podemos declarar um vetor (array) de inteiros: int[] idades; O int[] é um tipo. Uma array é sempre um objeto, portanto, a variável idades é uma referência. Vamos precisar criar um objeto para poder usar a array. Como criamos o objeto-array? idades = new int[10]; 8
  9. 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
  10. 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
  11. 2. Percorrendo um array 11
  12. 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
  13. 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
  14. 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
  15. 2. Percorrendo um Array • Também podemos fazer isso de uma forma direta. • EX: 15
  16. 2. Percorrendo um Array • Assim, nosso array estaria sendo criado da seguinte maneira: 16
  17. 2. Percorrendo um Array • Agora, vamos ver como podemos “percorrer” dentro de um array e retornar algo. • EX: Criando e percorrendo um array. 17
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
Anúncio