Escolar Documentos
Profissional Documentos
Cultura Documentos
Data: 24/1/2011
Descrio: Vetores
Introduo
Antes de iniciarmos vale relembrar que o seu aprendizado depende muito da qualidade do seu
estudo, com isto importante dizer que: Os exerccios so parte importante da sedimentao do
seu conhecimento.
Durante o texto as palavras array e vetores sero utilizadas sempre com o mesmo significado
(estruturas de dados seqenciais).
Uma coleo nada mais do que um conjunto de elementos contidos em uma nica estrutura
em Java um objeto cuja funo oferecer meios de armazenar, disponibilizar, remover,
localizar e percorrer o seu contedo.
Colees so estruturas de dados que agrupam elementos que formam um grupo natural como por
exemplo: baralho (conjunto de cartas), time (conjunto de jogadores), turma (conjunto de alunos) e
etc.
A seguir conceituaremos superficialmente os tipos de colees mais comuns:
Vetor: formado por um grupo de elementos acessados atravs do seu ndice;
Pilha: Estrutura de dados onde o ltimo elemento a ser inserido na coleo o primeiro a ser
retirado (Baseado no princpio LIFO, Last in, first out);
Fila: Coleo onde a ordem de insero representa a ordem de sada dos elementos
(Baseado no princpio FIFO, First in, first out);
rvores: Estrutura de dados que garante a ordenao dos elementos que a compe;
Cada uma das estruturas de dados apresentadas possui caractersticas que as diferenciam quanto
a:
Eficincia de busca;
Eficincia de insero;
Organizao;
Ordenao;
Forma de acesso;
Forma de busca e;
Forma de insero.
DANIEL DE CAMARGO
JAVA
Arrays Unidimensionais
A forma mais eficiente de trabalhar com colees de elementos em Java atravs da construo de
vetores (arrays). Em Java, arrays so objetos que armazenam mltiplas variveis do mesmo tipo ou
do mesmo sub-tipo (sub-tipo? No se preocupe por enquanto com isto).
Observe que apesar da sua eficincia, normalmente, para armazenar dados ns utilizamos
estruturas de dados mais flexveis j existentes na linguagem, mais especificamente, no Framework
Collections (assunto a ser abordado em mais detalhes durante este curso) ao invs de arrays.
Um array um objeto que armazena um nmero pr-definido de elementos, isto , o seu tamanho
definido no momento da sua construo. Seus elementos so acessados atravs de ndices que
iniciam-se sempre por 0 (zero), ou seja, um array de tamanho quatro ter ndices 0, 1, 2 e 3.
Em Java existem diversas formas de declarar, construir e inicializar arrays e a melhor forma de
utilizar estas estruturas de dados conhecendo como so realizadas cada uma destas etapas.
A seguir apresentaremos cada uma destas etapas e a forma como elas acontecem na prtica:
1. Declarao: Etapa em que a referncia do array declarada;
2. Construo: Aqui definido o tamanho e instanciado o array;
3. Inicializao: Os elementos so inseridos no array
Abaixo temos um exemplo com todas as etapas bem definidas:
int[] jogoSena; //Declarao
jogoSena = new int[6]; //Criao
jogoSena[0]
jogoSena[1]
jogoSena[2]
jogoSena[3]
jogoSena[4]
jogoSena[5]
=
=
=
=
=
=
23;
12;
55;
02;
07;
19;
//Inicializao
//Inicializao
//Inicializao
//Inicializao
//Inicializao
//Inicializao
da
da
da
da
da
da
posio
posio
posio
posio
posio
posio
0
1
2
3
4
5
Neste caso estamos criando um vetor de inteiros (int), perceba que a declarao da varivel
ocorre na linha 1, na seqencia temos a criao do vetor (linha 3) e por ltimo a inicializao de
cada uma das suas posies.
Existem formas mais enxutas de efetuarmos as mesmas etapas mostradas no exemplo anterior.
Podemos declarar, construir e inicializar em apenas uma linha da seguinte forma:
int[] outroJogoSena = {23, 12, 55, 02, 07, 19};
JAVA
III.Inicializao das posies com os valores 23, 12, 55, 02, 07 e 19;
IV. Atribuio do novo objeto (array) a referncia outroJogoSena;
O outro atalho que a linguagem Java nos permite o seguinte:
int[] outroJogoSena = new int[]{23, 12, 55, 02, 07, 19};
DANIEL DE CAMARGO
JAVA
}
Exemplo Resolvido 02
Implemente um algoritmo que ordene um array com 10 nmeros inteiros. O algoritmo deve efetuar
uma comparao de cada elemento com o seu sucessor e se a ordem no for crescente os
elementos devem ter suas posies trocadas, este processo deve se repetir at que o array
esteja ordenado.
public class OrdenarArray {
public static void main(String[] args) {
int[] arrayInteiros = {55, 27, 33, 45, 92, 100, 3, 8, 11, 70};
boolean estaOrdenado = false;
while(!estaOrdenado){
estaOrdenado = true;
for(int i = 1; i < arrayInteiros.length; i++)
{
if(arrayInteiros[i-1] > arrayInteiros[i])
{
estaOrdenado = false;
int aux = arrayInteiros[i];
arrayInteiros[i] = arrayInteiros[i-1];
arrayInteiros[i-1] = aux;
System.out. println("Ordem atual: "+
arrayInteiros[0]+ " " + arrayInteiros[1]+" "+
arrayInteiros[2]+ " " + arrayInteiros[3]+" "+
arrayInteiros[4]+ " " + arrayInteiros[5]+" "+
arrayInteiros[6]+ " " + arrayInteiros[7]+" "+
arrayInteiros[8]+ " " + arrayInteiros[9]);
}
}
}
}
Exerccios
DANIEL DE CAMARGO
JAVA
DANIEL DE CAMARGO
JAVA