3 - Java - Arrays
3 - Java - Arrays
Arrays
1. int numero1;
2. int numero2;
3. int numero3;
4. int numero4;
5. int numero5;
1. int[] numeros;
3
Criar um Array
Para se criar um array deve-se usar a palavra
reservada new:
1. int[] numeros = new int[5];
4
Arrays
Importante!
Quando um array é criado com o comando new, todas as
posições são inicializadas com os valores padrão (primitivos
como o int ou long são inicializados com 0, booleanos com false
e objetos com null).
5
Arrays - Acessando os registros
Para acessar os valores, deve-se acessar a posição em que eles
foram colocados, caso a posição não exista, um erro será lançado.
1. int[] numeros = new int[5];
2. numeros[0] = 1000;
3. numeros[1] = 1001;
4. numeros[2] = 1002;
5. numeros[3] = 1003;
6. numeros[4] = 1004;
1. //escreve 1001
2. System.out.println(numeros[1]);
3. //escreve 1002
4. System.out.println(numeros[2]);
5. //lança um erro pois não existe a posição 10
6. System.out.println(numeros[10]);
6
Exercício - Arrays
• Criar um novo pacote chamado br.com.curso.arrays
• Criar a classe ArrayExercicio1
• Dentro da classe ArrayExercicio1 criar o array e escrever seus valores como
mostrado abaixo:
1. package arrays;
2.
3. public class ArrayExercicio1 {
4. public static void main(String[] args) {
5.
6. int numeros[] = new int[5];
7.
8. numeros[0] = 2000;
9. numeros[1] = 4000;
10.
11. System.out.println(numeros[0]);
12. System.out.println(numeros[1]);
13. System.out.println(numeros[2]);
14.
15. }
16. }
7
Arrays - Inicialização na Criação
Um array pode ser inicializado na sua criação.
Por exemplo, o código:
1. int[] numeros = new int[5];
2. numeros[0] = 1000;
3. numeros[1] = 1001;
4. numeros[2] = 1002;
5. numeros[3] = 1003;
6. numeros[4] = 1004;
Equivale a:
int[] numeros = new int[]{1000, 1001, 1002, 1003, 1004};
ou:
8
Iterando sobre os Arrays
• É possível iterar sobre todos os elementos do array utilizando
um for
• Isso é possível pois os arrays possuem um atributo chamado
length
9
Exercício - Arrays
• Criar a classe ArrayExercicio2 dentro do pacote br.com.curso.arrays
• Dentro da classe ArrayExercicio2 criar o array e escrever seus valores utilizando o
“for” como mostrado abaixo:
1. package arrays;
2.
3. public class ArrayExercicio2 {
4.
5. public static void main(String[] args) {
6.
7. int numeros[] = {10, 20, 30, 40, 50};
8.
9. for (int i = 0; i < numeros.length; i++) {
10. System.out.println(numeros[i]);
11. }
12.
13. }
14. }
10
Enhanced-for ou For each
• O Java 5 trouxe essa nova sintaxe para percorremos
arrays.
• Não há necessidade de manter uma variável com o
índice
Sintaxe:
for(tipo nome_variavel : array){
//fazer algo
}
11
Enhanced-for ou For each
12
Enhanced-for ou For each
Considerando o array:
int[] numeros = new int[]{1000, 1001, 1002, 1003, 1004};
13
Exercício - Arrays
• Alterar a classe ArrayExercicio2 e escrever os elemento do array
percorrendo seus elementos usando for each.
1. package arrays;
2.
3. public class ArrayExercicio2 {
4.
5. public static void main(String[] args) {
6.
7. int numeros[] = {10, 20, 30, 40, 50};
8.
9. System.out.println("Usando indice");
10. for (int i = 0; i < numeros.length; i++) {
11. System.out.println(numeros[i]);
12. }
13.
14. System.out.println("Usando for each");
15. for (int numero : numeros) {
16. System.out.println(numero);
17. }
18.
19. }
20. }
14
Exercício - Arrays, o maior número
• Criar a classe MaiorNumero no pacote br.com.curso.arrays
• .Criar um método pegarMaiorNumero que recebe um array de int e retorne o
maior numero
• Após criar o método pegarMaiorNumeroexecutar o código abaixo
1. package br.com.curso.arrays;
2.
3. public class MaiorNumero {
4.
5. public static void main(String[] args) {
6.
7. int[] numeros = {1, 2, 22, 54, 88, 3, 4, 5, 6, 7, 8};
8. int maior = pegarMaiorNumero(numeros);
9. System.out.println("O maior numero é: " + maior);
10.
11. }
12. }
15
Exercício - Arrays, o maior número
Possível solução:
1. package br.com.curso.arrays;
2.
3. public class MaiorNumero {
4.
5. public static int pegarMaiorNumero(int[] numeros) {
6.
7. int maior = 0;
8.
9. for (int numero : numeros) {
10. if (numero > maior) {
11. maior = numero;
12. }
13. }
14.
15. return maior;
16. }
17.
18. public static void main(String[] args) {
19.
20. int[] numeros = {1, 2, 22, 54, 88, 3, 4, 5, 6, 7, 8};
21. int maior = pegarMaiorNumero(numeros);
22. System.out.println("O maior numero é: " + maior);
23.
24. }
25. }
16
Arrays
Importante!
Arrays não podem mudar de tamanho
A partir do momento que uma array foi criada, ela não pode
mudar de tamanho.
Se você precisar de array maior, é necessário criar um array
maior e copiar os elementos do array antigo para o novo.
17
Arrays Bidimensionais
Para se declarar arrays bidimensionais bas
duplicar os colchetes na declaração:
18
Arrays Bidimensionais
É possível percorrer arrays bidimensionais utilizando
for aninhado (um for dentro do outro)
19
Exercício Arrays Bidimensionais
• Criar a classe ArrayExercicio3 no pacote br.com.curso.arrays
• Criar e executar o seguinte método main na classe
1. package br.com.curso.arrays;
2.
3. public class ArrayExercicio3 {
4. public static void main(String[] args) {
5.
6. String[][] array = new String[2][2];
7.
8. array[0][0] = "1.1";
9. array[0][1] = "1.2";
10. array[1][0] = "2.1";
11. array[1][1] = "2.2";
12.
13. for(String[] s1 : array){
14. for(String s2 : s1){
15. System.out.println(s2);
16. }
17. }
18.
19. }
20. }
20
Ordenação de Arrays
A classe Arrays do pacote java.util possui alguns métodos
utilitários para listas e Arrays.
Um desses métodos é o sort, utilizado para realizar a
ordenação.
21
Ordenação de Arrays
Exemplo de ordenação utilizando o tipo int:
1. import java.util.Arrays;
2.
3. public class OrdenacaoArrayInt {
4.
5. public static void main(String[] args) {
6.
7. int[] numeros = {50, 40, 10, 20, 30, 0};
8.
9. for (int numero : numeros) {
10. System.out.println(numero);
11. }
12.
13. Arrays.sort(numeros);
14.
15. for (int numero : numeros) {
16. System.out.println(numero);
17. }
18.
19. }
20. }
22
Exercício - Ordenação Arrays
• Criar a classe OrdenacaoArrays no pacote
br.com.curso.arrays
• Criar um método main com o seguinte array de Strings:
1. public static void main(String[] args) {
2.
3. String[] nomes = {"Maria", "Joaquim", "Pedro", "Amando", "Tania"};
4.
5. }
23
Exercício - Ordenação Arrays
Resposta:
1. package arrays;
2.
3. import java.util.Arrays;
4.
5. public class OrdenacaoArrayStrings {
6.
7. public static void main(String[] args) {
8.
9. String[] nomes = {"Maria", "Joaquim", "Pedro", "Amando", "Tania"};
10.
11. Arrays.sort(nomes);
12.
13. for (String nome : nomes) {
14. System.out.println(nome);
15. }
16.
17. }
18. }
24
Arrays de Objetos
• Os arrays podem ser criados para qualquer tipo de classe
Classe Pessoa.java:
1. public class Pessoa {
2. private String nome;
3.
4. public Pessoa() {
5. }
6.
7. public Pessoa(String nome) {
8. this.nome = nome;
9. }
10. }
1. import br.com.curso.modelo.*;
2.
3. public class ArrayPessoa {
4. public static void main(String[] args) {
5.
6. Pessoa pessoa1 = new Pessoa("Maria");
7. Pessoa pessoa2 = new Pessoa("Joaquim");
8. Pessoa pessoa3 = new Pessoa("Miguel");
9.
10. Pessoa[] pessoas = new Pessoa[3];
11.
12. pessoas[0] = pessoa1;
13. pessoas[1] = pessoa2;
14. pessoas[2] = pessoa3;
15.
16. for(Pessoa pessoa : pessoas){
17. System.out.println(pessoa.getNome());
18. }
19.
20. }
21. }
26