Arrays - Ricardo Luis dos Santos

Propaganda
Arrays
Professor: Ricardo Luis dos Santos
IFSUL – Campus Sapucaia do Sul
© 2015 Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Arrays ou vetores são estruturas de dados que
armazenam usualmente uma quantidade fixa de
dados de um determinado tipo
• Também são conhecidos como estruturas homogêneas de
dados
• Um vetor armazena diversos valores, cada um associado a
um número que se refere à posição de armazenamento, e é
conhecido como índice
• O valor que pode ser armazenado em uma certa posição
(índice) é chamado de elemento
2
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Cada elemento do vetor pode ser utilizado de uma
forma direta, sem nenhuma regra ou ordem, fazendo
dos vetores estruturas de dados de acesso aleatório
•
O número de posições de um vetor corresponde ao
tamanho que ele tem
• Um vetor de tamanho 5 possui 5 elementos distintos
• Os diferentes elementos de um vetor são distinguidos
unicamente pela posição que ocupam no vetor (inteiro
sequencial)
vetor
3
10
45
12
0
-7
0
1
2
3
4
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Cada elemento do vetor pode ser utilizado forma
direta, sem nenhuma regra ou ordem, fazendo dos
vetores estruturas de dados de acesso aleatório
•
O número de posições de um vetor corresponde ao
tamanho que ele tem
O Java como as linguagens C e C++ são linguagens
• Um
vetor
de tamanho
5 possui
5 elementos
com
vetores
zero-based,
isto é,
as posiçõesdistintos
do vetor
• Osiniciam
diferentes
elementosa de
um do
vetor
são“0”,
distinguidos
a numeração
partir
valor
portanto,
unicamente
pelatamanho
posição 10
queteria
ocupam
noiniciados
vetor (inteiro
um vetor de
índices
em
sequencial)
0 prosseguindo até o 9
vetor
4
10
45
12
0
-7
0
1
2
3
4
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Podemos declarar um vetor da seguinte forma
•
5
Declarações de vetores são semelhantes às declarações de
variáveis, os elementos sintáticos que diferenciam as
variáveis do tipo vetor das outras variáveis são os colchetes
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
6
No Java um vetor é uma “classe”, portanto, deve-se
utilizar o método new, que ativa o método construtor
correspondente, para criar instâncias, da classe vetor
do tipo selecionado (int, byte, long, char, float, …)
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Expressões como índices:
meuArray[Expressão]
• onde:
• meuArray
• nome da variável do tipo array
• Expressão
• Posição que define qual o elemento da estrutura de dados está
sendo referenciado
• Atenção: deve ser um valor pertencente ao intervalo do índice da
variável
7
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Em suma:
Qual o output?
8
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Na prática:
Replicar o código
9
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
Replicar o código
10
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
Qual a diferença entre esses dois laços?
Por que e quando utilizar cada um
deles?
11
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays
•
Java permite a inicialização de vetores no momento
da declaração
• Isso significa que v[0] terá o valor 3, v[1] terá o valor 2, v[2]
terá o valor 7, v[3] terá o valor 5 e v[4] terá o valor 0
12
• Ainda é possível conhecer o tamanho do vetor através do
campo length
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
•
Java não fornece vetores multidimensionais, mas é
possível criar vetores de vetores (de vetores etc.),
alcançando assim o mesmo efeito
•
A declaração de um vetor bidimensional para
“inteiros”, de nome “matriz” em Java:
13
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
•
Declarando um vetor bidimensional, ou matriz
int[][] A = new int[2][4];
•
Referenciando as posições da matriz
1a. Linha
2a. Linha
-------------
-------------
• A[0][0] = 17;
• A[0][1] = 33;
• A[0][2] = 21;
A[1][0] = 13;
A[1][1] = 81;
A[1][2] = 97;
• A[0][3] = 15;
A[1][3] = 67;
i, linha
14
A[i][j]
j, coluna
0 1 2 3
0
17 33 21 15
1
13 81 97 67
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
Replicar o código
15
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
•
16
Podemos declarar
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
Podemos ainda declarar linhas de diferentes tamanhos:
Int[][] m = { {1, 2}, {4, 5, 6, 7, 8}, {9, 10, 11} };
3a. linha com 3 colunas
2a. linha com 5 colunas
1a. linha com 2 colunas
Para conhecer os tamanhos dos vetores deve-se utilizar o
campo length:
• m.length determina o número de linhas
• m[i].length determina o número de colunas da i-ésima linha
17
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
Qual o output?
18
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
•
Em Java, com exceção dos tipos primitivos (int,
double, char e boolean), todos os outros são
“objetos”
• String, com S maiúsculo, é um dos objetos mais utilizados
•
Ao contrário que ocorre em C e C++, strings em Java
são objetos, instâncias da classe java.lang.String
•
As strings correspondem a uma sequência de
caracteres ASCII delimitados por aspas duplas
19
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
Replicar o código
20
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Arrays Multidimensionais
•
Lista de exercícios
•
O 22 é um desafio
21
Instituto Federal de Educação, Ciência e Tecnologia Sul-Rio-Grandense
Campus Sapucaia do Sul
Download