• Nenhum resultado encontrado

Coleções de Objetos

N/A
N/A
Protected

Academic year: 2021

Share "Coleções de Objetos"

Copied!
12
0
0

Texto

(1)

Coleções de Objetos

Prof. Giuliano Prado de Morais Giglio, M.Sc.

A Plataforma Java

Programação Orientada a Objetos em Java

Coleções de Objetos

n

É a possibilidade de se trabalhar com um conjunto de objetos, sem precisar de manipula-los um-a-um, individualmente;

n

Desta forma, temos que trabalhar com

estruturas de dados que nos permitem

armazenar e manipular diversos objetos

ao mesmo tempo.

(2)

Coleções de Objetos com vetores

n

Seguindo esse conceito, podemos então pensar numa primeira estrutura para isso, que seria os Vetores, que tem essa propriedade de armazenar diversas informações de um mesmo tipo (pois ele é uma estrutura Homogênea).

n

Já vimos como trabalhar com vetores na 2ª unidade de nossa disciplina.

Coleções de Objetos com vetores

n

Relembrando:

n

Para criar um vetor vazio:

Tipo nomedovetor [] = new Tipo[N];

Sendo N o numero de elementos do vetor n

Exemplos:

int vetor[ ] = new int[50]; //cria um vetor de inteiros de 50 elementos

float notas[ ] = new float [80]; // cria um vetor de float de 80 elementos

String nomes[ ] = new String[150]; // cria um vetor de 150 strings

(3)

Coleções de Objetos com vetores

n

Toda manipulação do vetor segue a mesma sistemática de qualquer vetor em C:

• Cria-se os índices do vetor de 0 até N-1;

• Utiliza-se FOR para criar os índices e percorrer cada elemento do vetor;

• Lembre-se que há a inicialização de vetores

(vide o material sobre vetores anterior).

Coleções de Objetos com vetores

n

Desta forma, seguindo essa ideia, podemos então criar um “Vetor de Objetos”, ou seja, uma variável que possui a capacidade de armazenar e manipular uma grande quantidade de objetos;

A vantagem: facilita e muito a

manipulação de objetos, através de uma

única variável, ao invés de objeto por

objeto.

(4)

Coleções de Objetos com vetores

n Para exemplificarmos, vamos usar a classe Funcionario do Exercício_Aprendizado_java.pdf feito em aulas passadas;

n Suponhamos que precisamos criar 10 objetos funcionários no main(). Logo, podemos fazer:

Funcionario cad [ ] = new Funcionario[10];

n Teríamos criado um vetor “cad” de 10 espaços, porém “vazios”, preparados para armazenar 10 objetos funcionários.

Coleções de Objetos com vetores

n Para criarmos objetos e colocarmos em cada posição do vetor, podemos fazer:

for(int i=0; i< 10; i++) {

Funcionario fc = new Funcionario(); // estamos usando um construtor com entrada de dados

cad[i] = fc;

}

Logo, estamos criando um objeto fc de Funcionário e colocando em uma posição do vetor.

(5)

Coleções de Objetos com vetores

n Uma solução melhor, seria usar diretamente a posição do vetor, já que ela terá (e é do tipo) de um objeto Funcionario.

for(int i=0; i< 10; i++) {

cad[i] = new Funcionario();

}

Desta forma, preenchemos todo o vetor com objetos Funcionario, um a um.

Coleções de Objetos com vetores

n Logo cad[ i ] É UM OBJETO Funcionario

cad [i]

exibirFuncionario() calcularSalarioBruto() calcularImposto(taxa) ...

(6)

Coleções de Objetos com vetores

n Temos agora um “cadastro de funcionários”, onde cada posição do vetor possui um objeto Funcionario.

Podemos então varrer o vetor para fazermos qualquer manipulação com os objetos que temos, por exemplo:

Mostrar os dados de cada Funcionario:

for(int i=0; i< 10; i++) {

System.ou.println(cad[i].exibir());

}

Coleções de Objetos com vetores

Calcular o imposto de cada Funcionario:

for(int i=0; i< 10; i++) {

System.ou.println("O imposto do funcionário " + cad[i].getNome() + " é igual a " + cad[i].calcularImposto());

}

(7)

Coleções de Objetos com vetores

Ou verificar qual funcionário possui o maior salário base:

maior = cad[0].getSalarioBase();

posicao = 0;

for(int i=1; i<10; i++) {

if(cad[i].getSalarioBase() > maior) {

maior = cad[i].getSalarioBase();

posicao = i;

}

}

System.out.println("Funcionário com maior salário é " + cad[posicao].getNome());

Exercício de vetores de objetos

n Use a solução do Exercício de Agregação feito na ultima aula para implementarmos uma solução com vetores de objetos;

n Crie uma nova classe principal (Principal2.java) contendo o método main();

n Crie 2 vetores nessa classe. Um para Cliente outro para Conta;

n Defina a quantidade que você julgar necessário para ambos os vetores;

n Adicione cada Conta do vetor de contas para cada objeto Cliente do vetor de clientes (use o mesmo índice para ambos os objetos, ou seja, cliente[0] para conta[0] - cliente[1] para conta[1] e assim por diante);

n Faça as demais etapas pedidas na classe Principal anterior, usando os vetores.

(8)

n

Problema do uso de vetores para coleções:

• Alocação fixa de memória

üPrecisa de se definir o tamanho fixo na criação;

üSe precisar de mais ou menos espaço, não dá para realizar em tempo de execução;

• Implementações para vetores precisam ser feitas separadamente

ü ordenação, busca, inserção e remoção, etc

Uso de Coleções Nativas

Uso de Coleções Nativas

n

Na OO, quando se define uma classe, não só se define as estruturas de dados que ela terá (atributos) como as operações que serão feitas para manipula-las (métodos)

n

Quando se cria um objeto, portanto, ele

já terá as duas coisas: dados +

operações feitas

(9)

Uso de Collections

n

Logo, será que a API Java não nos fornece classes (e portanto objetos) já

“prontos” e que podem atender ao objetivo de se trabalhar com coleções de forma DINÂMICA?

n

SIM! São as Collections!

Collections

n

É um conjunto de classes e interfaces do pacote java.util que fornecem inúmeras facilidades para trabalhar com coleções de objetos

n

Existem vários algoritmos de ordenação e detalhes no uso de Collections.

Vamos ver as principais características

para o uso de coleções.

(10)

Collections

n

Collections é uma interface que conta com os seguintes métodos :

• isEmpty() – indica se a coleção está vazia

• contains(Object o) – true/false para o caso da coleção conter o objeto

• iterator() – retorna o objeto para iteração pela coleção

Collections em Java

(11)

Collections – ArrayList

n

Permite a criação de um “Array” que funciona como uma lista. A grande vantagem é que pode aumentar o tamanho de forma automática, não é estático como os arrays tradicionais.

n

Além disso, é recomendado para

criarmos uma Lista de objetos de um determinado tipo.

Collections – ArrayList

n

Principais métodos:

• add(Object o) – adiciona o objeto passado

• add(int i, Object o) – adiciona o objeto na posição indicada.

• clear() – limpa o arraylist

• get(int i) – retorna o objeto na posição passada

• remove(int i) – remove o objeto na posição indicada

• size() – retorna o tamanho do arraylist

(12)

ArrayList - Exemplo

List<Funcionario> list = new ArrayList <Funcionario>( );

list.add(new Funcionario(nome,endereco,telefone,estado) );

Funcionario f;

for (int i = 0; i < list.size(); i++) {

f = list.get(i);

f.aumentarSalario(30);

}

Referências

Documentos relacionados

• Todos os tanques de carga devem ser equipados com um sistema de ventilação apropriado à carga neles transportada • Estes sistemas devem ser projectados de modo a minimizar. –

OBS : Devemos diferenciar também características radiológicas dos achados da atelectasia pulmonar e do derrame pleural: enquanto que no primeiro as estruturas mediastinais

OBJETO DO CONVÊNIO: AQUISIÇÃO DE EQUIPAMENTO E MATERIAL PERMANENTE PARA UNIDADE DE ATENÇÃO ESPECIALIZADA EM SAÚDE.. METAS E ETAPAS CUMPRIDAS METAS E ETAPAS

O presente trabalho foi iniciado almejando a redução de consumo de soda cáustica no processo de higienização de linhas de uma indústria de bebidas não

de terreno e de área construída estão baseadas na matrícula 2.654, fornecida pela solicitante que é anexada a este parecer.. Desenvolve-se em traçado retilíneo, apresentando

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

Idealmente, a melhor comparação para as UC tratadas viria do grupo de UC tratadas, ou seja, o grupo que receberam as ações de EE, mas na situação em que eles não tivessem

3 Mecanismos que visam garantir que o grupo de controle não receba as ações de EE são fundamentais para que a contaminação do grupo de controle não inviabilize a