Profa. Divani Barbosa Gavinier
Aula 2 – parte 1 – Estrutura de Dados
2
Estrutura de armazenamento de dados mais
comumente usada.
Criando um vetor em Java
Vetores são objetos em Java, por isso é
necessário o uso do operador new para criar
um vetor em Java.
int[] VetorInt; // define uma referência a um vetor
VetorInt = new int[100]; // cria o vetor e faz
// VetorInt referenciá-lo
Ou pode-se usar a abordagem equivalente com
uma só instrução:
int[] VetorInt = new int[100];
int VetorInt[] = new int[100];
3
Inserção
Inserir um item no vetor é fácil, usamos a sintaxe
normal de vetor e também controlamos quantos
itens inserimos no vetor com a variável n.
VetorInt[0] = 77;
VetorInt[1] = 55;
n = 2;
for(i=0; i<n; i++) // para cada elemento
System.out.print(" " + VetorInt[i]); // mostrar item
Exibição
Considerando que a variável n contem o número de
elementos do vetor. Exibir todos os elementos é
simples, percorremos o vetor acessando cada
elemento com VetorInt[i] e exibimo-los.
4
Pesquisa
Considerando que a variável chave contem o valor
que estamos procurando. Para pesquisar um item,
percorremos o vetor comparando a chave com cada
elemento. Se o contador i atingir a ultima célula
ocupada sem nenhuma coincidência encontrada, o
valor procurado não se encontra no vetor.
chave = 66; // achar item com chave 66
for (i=0; i<n; i++) // para cada elemento
if ( v[i]==chave ) // achou item?
break; // sim achei, sair antes do fim
if (i==n) // chegou ao fim?
System.out.println(chave + " NAO encontrado"); // sim
else
System.out.println(chave + " Encontrado"); // não
5
Remoção
A remoção começa com a pesquisa do item
especificado (chave). Caso ele se encontre no vetor
movemos todos os itens de índice mais alto para
baixo e diminuímos o numero de elementos.
chave = 55; // remover item com chave 55
for (i=0; i<n ;i++) // para cada elemento
if (v[i]==chave) { // achou item?
if (i != (n-1)) { // Se NAO for o ultimo item
for(int k=i; k<(n-1); k++) // Vetor caminha
v[k]=v[k+1];
}
n--; // decrementa um elemento no vetor
break; // sair antes do fim
}
6
public class VetorApp {
public static void main(String[] args) {
long[] v = new long[100];
int n=0; // numero de elementos adicionados
int i; // contador
long chave;
// Inserindo 10 itens
v[0]=77; v[1]=99; v[2]=44; v[3]=55; v[4]=22;
v[5]=88; v[6]=11; v[7]=0; v[8]=66; v[9]=33;
n=10;
// Mostrando itens
System.out.println(" >>> Mostrando itens ");
for(i=0; i<n; i++)
System.out.print(" " + v[i]);
System.out.println();
Programa VetorApp
7
// Procurando itens
chave=66;
System.out.println(" >>> Procurando a chave " + chave);
for(i=0;i<n;i++)
if(v[i]==chave) break; // Encontrou o item → sai
if(i==n) System.out.println("Nao encontrei essa chave");
else System.out.println("Chave encontrada");
// Removendo item
chave=55;
System.out.println(" >>> Removendo item " + chave);
for(i=0; i<n ;i++) {
if(v[i]==chave) { // Encontrou o item
if(i != (n-1)) // Se NAO for o ultimo item
for(int k=i; k<(n-1); k++)
v[k]=v[k+1]; // Vetor caminha
n--; // decrementa um item no vetor
System.out.println("Item removido");
break; // saída imediata do laço
} // fim if encontrou item
} // fim laço for
8
// Mostrando itens
System.out.println(" >>> Mostrando itens ");
for(i=0; i<n; i++)
System.out.print(" " + v[i]);
System.out.println();
} // Fim programa principal
} // Fim classe VetorApp
Atividades Fixação
2- Desenvolva um programa em Java que leia do usuário 20 valores
inteiros, caso o valor lido seja par insira no vetor A, caso contrario, insira
no vetor B. No final imprima na tela o conteúdo do vetor A e depois do
vetor B.
1- Desenvolva um programa em Java que leia do usuário um conjunto de
10 elementos do tipo String a partir do teclado, armazene-os na variável A
e depois os imprima o conteúdo de A na tela.
Escrever programas para resolver os projetos de programação ajuda a
solidificar sua compreensão do material e demonstra como aplicar os
conceitos da aula.
9
// Mostrando itens
System.out.println(" >>> Mostrando itens ");
for(i=0; i<n; i++)
System.out.print(" " + v[i]);
System.out.println();
} // Fim programa principal
} // Fim classe VetorApp
A organização de VetorApp.java deixa algo a desejar.
O programa tem apenas uma classe, VetorApp e ela
tem apenas um método (main()).
Vamos torna-lo mais orientado a objeto.
Para isso vamos separar a estrutura de
armazenamento de dados (o vetor) do resto do
programa e deixar a parte restante como usuário
dessa estrutura que criamos.
10
private long[] v;
private int n;
Classe Vetor:
Campos Construtor
public Vetor(int tam) {
v = new long[tam];
n = 0;
}
Métodos
inserir: Insere itens no vetor
buscar: Retorna -1 caso não encontre ou a
posição no vetor onde o item se encontra.
remover: Retorna verdadeiro se removeu item
exibir: Exibe na tela todos os itens
11
class Vetor {
private long[] v;
private int n; // numero de elementos adicionados
public Vetor(int tam) {
v = new long[tam];
n = 0;
}
public void inserir(long valor) {
v[n] = valor;
n++;
}
public int buscar(long chave) {
for(int i=0; i<n; i++)
if( v[i] == chave ) return i;
return -1;
}
Construtor
Campos
Método 1
Método 2
12
public boolean remover(long chave) {
for(int i=0; i<n; i++) {
if( v[i] == chave ) {
if ( i != (n-1) ) // Se NAO for o ultimo item
for(int k=i; k<(n-1); k++)
v[k] = v[k+1]; // Vetor caminha
n--;
return true;
}
}
return false;
}
public void exibir() {
for(int i=0; i<n; i++)
System.out.print(" " + v[i]);
}
} // fim Classe Vetor
Método 4
Método 3
Dividir o programa em Classes deixa mais claro sua funcionalidade
13
Exemplo de uso da classe Vetor:
Classe do programa principal:
Usa-se (ponto) para
acessar o método
Usa-se o operador new
para criar o objeto Vetor
14
Atividades Fixação (continuação)
3- Implemente na classe Vetor um método que retorne o numero de itens
do vetor e outro método que retorne verdadeiro caso o vetor esteja vazio.
Adicione algum código na classe do programa principal para exercitar esse
método.
4- Implemente no método remover uma verificação se o vetor esta vazio,
caso positivo, imprima na tela uma mensagem dizendo que o vetor esta
vazio, caso contrario, retire o item especificado pelo usuário (caso ele se
encontre no vetor).
5- Implemente no método inserir uma verificação se o vetor não esta
cheio (numero de itens é igual ao tamanho máximo), caso positivo
imprima uma mensagem dizendo que o numero de máximo de itens do
vetor foi atingido.
6- Implemente sua própria classe vetor. Se o usuário da classe estiver para
transbordar o vetor interno nesta classe, o algoritmo de inserção criará um
novo vetor de tamanho maior, copiará o conteúdo do antigo vetor para o
novo vetor e então inserirá o novo item. Esse processo inteiro seria
invisível para o usuário da classe.

Aula 2

  • 1.
    Profa. Divani BarbosaGavinier Aula 2 – parte 1 – Estrutura de Dados
  • 2.
    2 Estrutura de armazenamentode dados mais comumente usada. Criando um vetor em Java Vetores são objetos em Java, por isso é necessário o uso do operador new para criar um vetor em Java. int[] VetorInt; // define uma referência a um vetor VetorInt = new int[100]; // cria o vetor e faz // VetorInt referenciá-lo Ou pode-se usar a abordagem equivalente com uma só instrução: int[] VetorInt = new int[100]; int VetorInt[] = new int[100];
  • 3.
    3 Inserção Inserir um itemno vetor é fácil, usamos a sintaxe normal de vetor e também controlamos quantos itens inserimos no vetor com a variável n. VetorInt[0] = 77; VetorInt[1] = 55; n = 2; for(i=0; i<n; i++) // para cada elemento System.out.print(" " + VetorInt[i]); // mostrar item Exibição Considerando que a variável n contem o número de elementos do vetor. Exibir todos os elementos é simples, percorremos o vetor acessando cada elemento com VetorInt[i] e exibimo-los.
  • 4.
    4 Pesquisa Considerando que avariável chave contem o valor que estamos procurando. Para pesquisar um item, percorremos o vetor comparando a chave com cada elemento. Se o contador i atingir a ultima célula ocupada sem nenhuma coincidência encontrada, o valor procurado não se encontra no vetor. chave = 66; // achar item com chave 66 for (i=0; i<n; i++) // para cada elemento if ( v[i]==chave ) // achou item? break; // sim achei, sair antes do fim if (i==n) // chegou ao fim? System.out.println(chave + " NAO encontrado"); // sim else System.out.println(chave + " Encontrado"); // não
  • 5.
    5 Remoção A remoção começacom a pesquisa do item especificado (chave). Caso ele se encontre no vetor movemos todos os itens de índice mais alto para baixo e diminuímos o numero de elementos. chave = 55; // remover item com chave 55 for (i=0; i<n ;i++) // para cada elemento if (v[i]==chave) { // achou item? if (i != (n-1)) { // Se NAO for o ultimo item for(int k=i; k<(n-1); k++) // Vetor caminha v[k]=v[k+1]; } n--; // decrementa um elemento no vetor break; // sair antes do fim }
  • 6.
    6 public class VetorApp{ public static void main(String[] args) { long[] v = new long[100]; int n=0; // numero de elementos adicionados int i; // contador long chave; // Inserindo 10 itens v[0]=77; v[1]=99; v[2]=44; v[3]=55; v[4]=22; v[5]=88; v[6]=11; v[7]=0; v[8]=66; v[9]=33; n=10; // Mostrando itens System.out.println(" >>> Mostrando itens "); for(i=0; i<n; i++) System.out.print(" " + v[i]); System.out.println(); Programa VetorApp
  • 7.
    7 // Procurando itens chave=66; System.out.println(">>> Procurando a chave " + chave); for(i=0;i<n;i++) if(v[i]==chave) break; // Encontrou o item → sai if(i==n) System.out.println("Nao encontrei essa chave"); else System.out.println("Chave encontrada"); // Removendo item chave=55; System.out.println(" >>> Removendo item " + chave); for(i=0; i<n ;i++) { if(v[i]==chave) { // Encontrou o item if(i != (n-1)) // Se NAO for o ultimo item for(int k=i; k<(n-1); k++) v[k]=v[k+1]; // Vetor caminha n--; // decrementa um item no vetor System.out.println("Item removido"); break; // saída imediata do laço } // fim if encontrou item } // fim laço for
  • 8.
    8 // Mostrando itens System.out.println(">>> Mostrando itens "); for(i=0; i<n; i++) System.out.print(" " + v[i]); System.out.println(); } // Fim programa principal } // Fim classe VetorApp Atividades Fixação 2- Desenvolva um programa em Java que leia do usuário 20 valores inteiros, caso o valor lido seja par insira no vetor A, caso contrario, insira no vetor B. No final imprima na tela o conteúdo do vetor A e depois do vetor B. 1- Desenvolva um programa em Java que leia do usuário um conjunto de 10 elementos do tipo String a partir do teclado, armazene-os na variável A e depois os imprima o conteúdo de A na tela. Escrever programas para resolver os projetos de programação ajuda a solidificar sua compreensão do material e demonstra como aplicar os conceitos da aula.
  • 9.
    9 // Mostrando itens System.out.println(">>> Mostrando itens "); for(i=0; i<n; i++) System.out.print(" " + v[i]); System.out.println(); } // Fim programa principal } // Fim classe VetorApp A organização de VetorApp.java deixa algo a desejar. O programa tem apenas uma classe, VetorApp e ela tem apenas um método (main()). Vamos torna-lo mais orientado a objeto. Para isso vamos separar a estrutura de armazenamento de dados (o vetor) do resto do programa e deixar a parte restante como usuário dessa estrutura que criamos.
  • 10.
    10 private long[] v; privateint n; Classe Vetor: Campos Construtor public Vetor(int tam) { v = new long[tam]; n = 0; } Métodos inserir: Insere itens no vetor buscar: Retorna -1 caso não encontre ou a posição no vetor onde o item se encontra. remover: Retorna verdadeiro se removeu item exibir: Exibe na tela todos os itens
  • 11.
    11 class Vetor { privatelong[] v; private int n; // numero de elementos adicionados public Vetor(int tam) { v = new long[tam]; n = 0; } public void inserir(long valor) { v[n] = valor; n++; } public int buscar(long chave) { for(int i=0; i<n; i++) if( v[i] == chave ) return i; return -1; } Construtor Campos Método 1 Método 2
  • 12.
    12 public boolean remover(longchave) { for(int i=0; i<n; i++) { if( v[i] == chave ) { if ( i != (n-1) ) // Se NAO for o ultimo item for(int k=i; k<(n-1); k++) v[k] = v[k+1]; // Vetor caminha n--; return true; } } return false; } public void exibir() { for(int i=0; i<n; i++) System.out.print(" " + v[i]); } } // fim Classe Vetor Método 4 Método 3 Dividir o programa em Classes deixa mais claro sua funcionalidade
  • 13.
    13 Exemplo de usoda classe Vetor: Classe do programa principal: Usa-se (ponto) para acessar o método Usa-se o operador new para criar o objeto Vetor
  • 14.
    14 Atividades Fixação (continuação) 3-Implemente na classe Vetor um método que retorne o numero de itens do vetor e outro método que retorne verdadeiro caso o vetor esteja vazio. Adicione algum código na classe do programa principal para exercitar esse método. 4- Implemente no método remover uma verificação se o vetor esta vazio, caso positivo, imprima na tela uma mensagem dizendo que o vetor esta vazio, caso contrario, retire o item especificado pelo usuário (caso ele se encontre no vetor). 5- Implemente no método inserir uma verificação se o vetor não esta cheio (numero de itens é igual ao tamanho máximo), caso positivo imprima uma mensagem dizendo que o numero de máximo de itens do vetor foi atingido. 6- Implemente sua própria classe vetor. Se o usuário da classe estiver para transbordar o vetor interno nesta classe, o algoritmo de inserção criará um novo vetor de tamanho maior, copiará o conteúdo do antigo vetor para o novo vetor e então inserirá o novo item. Esse processo inteiro seria invisível para o usuário da classe.