Sunteți pe pagina 1din 12

Estruturas de Dados

Compostas - Arrays
O problema

Imaginemos que necessrio escrever um programa que:


leia uma lista de 50 alunos e as respetivas notas.
calcule a nota mdia.
escreva a diferena da nota de cada aluno para a nota mdia.

Seria necessrio declarar variveis separadas para cada um dos 50 alunos:


- String nome1, nome2, nome3, , nome50
- int nota1, nota2, nota3, , nota50

Isto no exequvel!...
Definio

Um array um objeto que permite o armazenamento de um conjunto de


dados de um determinado tipo.
Nota
Um Array pode conter tipos de
variveis, de todos os tipos de dados

Cada entrada do array permite conter um valor que pode ser:


- Modificado
- lido O valor referenciado como uma
entrada especfica do array, sendo o
- utilizado como qualquer outra varivel nome do array que conhecido.
Definio

Os elementos so indexados por um ndice que pode variar entre zero e n-1,
sendo n a dimenso da tabela.
Nome do array
(todos os elementos do
vetor passam a ter o mesmo
nome: c)

C [ 0 ] - 128
C [ 1 ] 8
C [ 2 ] 0 ...
C [ 3 ] 82 public static void main (String args[]) {
C [ 4 ] 64
int c = new int[11];
C [ 5 ] - 12
...
c = {-128,8,0,82,64,-12,65,43,76,11};
C [ 6 ] 65
C [ 7 ] 43
...
C [ 8 ] 76 c[4] += c[2]; // c[4] = 64 + 0 = 64
C [ 9 ] 11 }
C [ 10 ] 0

Nmero da posio do
elemento dentro de um array
(ndice)
Declarao de Arrays
Arrays so objetos que ocupam espaos contguos de memria.

Tem que se especificar o tipo, nome do array e utilizar o operador new

para reservar o espao necessrio.


int x[]; // declarao do array

x = new int[10]; // declarao e reserva de espao do array


Declarao de Arrays

Arrays podem ser declarados e inicializados ao mesmo tempo:


int c[] = {1,2,3,4,5,6,7,8,9,10,11,12}; //com 12 posies de valor
definido

Nesse caso, a reserva de espao feita pelo operador new


automaticamente realizada.

Quando os arrays so declarados sem inicializao, o Java faz a


inicializao para zeros (variveis numricas), false (variveis lgicas do
tipo boolean) ou null para referncias a tipos de objetos.
Outros exemplos
int [ ] arre; // declarao de um array de Inteiros

arre = new int[5]; // aloca espao em memria para 5


inteiros

// inicia valores e atribui valores a cada posio do array


arre[0] = 10; arre[1] = 32;
arre[2] = 23; arre[3] = 14;
arre[4] = 7;
10 32 23 14 7
Arrays Bidimensionais

Um array bidimensional consiste num array que possui mais de um tamanho


ou dimenso.
Os arrays bidimensionais, tambm conhecidos como matrizes, consistem num
array com dois tamanhos ou dimenses.
Sintaxe da criao de Arrays Bidimensionais

Sintaxe da declarao:
int [ ][ ] tabela; //do tipo int, sem dimenso declarada
int [ ][ ] tabela = new int [3][3]; //com 3*3 posies

Exemplo:
int [ ][ ] tabela = { {1, 4, 25} , {11, 2, 23}, {3, 8, 9} };
System.out.println(tabela[0][0]);
System.out.println(tabela[1][0]);
System.out.println(tabela[2][0]);
System.out.println(tabela[0][1]);
System.out.println(tabela[1][1]);
System.out.println(tabela[2][1]);
System.out.println(tabela[0][2]);
System.out.println(tabela[1][2]);
System.out.println(tabela[2][2]);
Classe Java.util.Arrays
Dentro do pacote java.util encontramos uma classe chamada Arrays.
Esta classe possui uma srie de mtodos estticos que nos ajudam a trabalhar mais facilmente com
vetores.
De entre os seus principais mtodos podemos evidenciar os seguintes:
binarySearch
Este mtodo recebe sempre 2 parmetros sendo um deles o array e outro o elemento que se deseja
encontrar dentro dele e utiliza o algoritmo da busca binria para localizar o elemento dentro do array.
sort
Realizar a ordenao de um array utilizando um algoritmo do tipo Quick Sort. Este tipo de algoritmo
tambm ser discutido mais adiante. Por este mtodo receber o array por parmetro (arrays so
objetos), ele o ordena e no retorna qualquer valor.
asList
Converte o array em uma estrutura do tipo lista.
copyOf
Cria uma cpia de um array. Pode-se copiar o array completamente ou apenas parte dele.
Link para mais informaes:
http://www.tutorialspoint.com/java/util/java_util_arrays.htm

S-ar putea să vă placă și