Capítulo 21. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Tamanho: px
Começar a partir da página:

Download "Capítulo 21. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra"

Transcrição

1 Capítulo 21 Coleções

2 Objetivos do Capítulo Analisar o conceito de coleção e sua relação com as estruturas de dados. Apresentar a arquitetura do framework de coleções do Java. Indicar as classes e interfaces do framework de coleções do Java que podem ser empregadas para a representação de cinco diferentes tipos de coleções: listas, pilhas, filas, conjuntos e mapas. Explorar os algoritmos disponíveis no framework de coleções do Java que permitem a realização de diferentes operações sobre coleções e sobre vetores.

3 Conceito de coleção Introdução Objeto Agrupa múltiplos elementos Organizaos sob determinada forma Realiza diferentes operações sobre eles Coleção & Estrutura de Dados E.D.: define uma forma de organização dos dados Coleção: Estrutura de dados préempacotada Parte integrante da API de determinado ambiente de programação

4 Coleções no JSE 1.0 Poucas coleções Introdução java.util.vector: vetor de objetos redimensionável java.util.stack: pilha de objetos java.util.hashtable: implementação de uma tabela de hash Criação de bibliotecas de terceiros Coleções no JSE 1.2 Introdução de um framework de coleções JCF: Java Collections Framework Arquitetura bem planejada Acréscimo de várias coleções novas Coleções no JSE 1.5 Reforma do JCF Adaptações para suporte a tipos genéricos

5 Características do JCF Introdução Arquitetura unificada de componentes Suporte a grande variedade de E.D. Listas Pilhas Filas Conjuntos Mapas Facilidade para extensão Algoritmos para operações com coleções Pesquisa Ordenação

6 Arquitetura do JCF Camada 1: interfaces Introdução Representam as coleções como TADs Manipulação uniforme da coleção (independente de implementação) Camada 2: classes abstratas São implementações parciais das coleções Reduzem o esforço para criação de novas coleções Camada 3: classes de implementação São classes concretas Oferecem uma implementação completa para a interface de uma coleção

7 Introdução Hierarquia de interfaces do JCF

8 Interface java.util.collection Introdução Define os métodos comuns a todas as coleções Não possui nenhuma implementação direta Permite a manipulação uniforme de diferentes tipos de coleções E = elemento Tipos de coleções java.util.list: representa uma lista java.util.queue: representa uma fila java.util.set: representa um conjunto java.util.sortedset: conjunto com elementos ordenados java.util.navigableset: conjunto ordenado e navegável

9 Interface java.util.map Introdução Representa um tipo especial de coleção: o mapa Mapeia chave para valores Não permite chaves duplicadas Parâmetros de tipo K: chave (key) V: valor (value) Tipos de mapas java.util.sortedmap: mapa com elementos ordenados java.util.navigablemap: mapa ordenado e navegável

10 Hierarquia de classes do JCF Introdução

11 Introdução Implementações para coleções

12 Introdução Métodos da interface Collection boolean add(e e): adiciona um elemento void clear( ): remove todos os elementos boolean contains(object o): se a coleção contém o elemento Pesquisa utiliza o método equals( ) do objeto boolean isempty( ): se a coleção está vazia Iterator<E> iterator( ): retorna um iterator boolean remove(object o): remove um elemento Pesquisa utiliza o método equals( ) do objeto int size( ): retorna a quantidade de elementos Object[] toarray( ): copia os elementos para um vetor T[] toarray(t[] a): copia os elementos para um vetor

13 Iterator Introdução Objeto que controla a navegação por uma coleção Só suporta navegação unidirecional Métodos da interface java.util.iterator boolean hasnext( ): verifica se ainda há mais um elemento E next( ): avança o cursor e retorna o elemento seguinte Pode disparar uma java.util.nosuchelementexception void remove( ): remove o elemento atual Não é suportado por todas as coleções

14 Implementações para mapas Introdução AbstractMap: implementação parcial HashMap: implementação completa de um mapa TreeMap: implementação de um mapa ordenado e navegável

15 Introdução Outros componentes importantes do JCF classe java.util.collections: algoritmos para coleções classe java.util.arrays: algoritmos para vetores interface java.util.listiterator: iterator para listas interface java.lang.comparable: critério único para ordenação interface java.util.comparator: múltiplos critérios de ordenação

16 Conceito Listas Coleção de elementos em seqüência Permite elementos duplicados Acesso através de índice Suporte à pesquisa e ordenação

17 Métodos da interface List Listas void add(int index, E element): insere o elemento na posição especificada O método add( ) herdado insere no final E get(int index): recupera o elemento da posição especificada int indexof(object o): retorna o índice da primeira ocorrência int lastindexof(object o): retorna o índice da última ocorrência ListIterator<E> listiterator( ): retorna um iterator que inicia a navegação no início da lista ListIterator<E> listiterator(int index): retorna um iterator que inicia a navegação na posição especificada E remove(int index): remove o elemento da posição especificada E set(int index, E element): substitui o elemento da posição especificada List<E> sublist(int fromindex, int toindex): retorna uma lista composta por parte dos elementos

18 Listas Métodos da interface ListIterator void add(e e): inclui o elemento na posição anterior ao cursor boolean hasprevious( ): se há um elemento antes do cursor int nextindex( ): retorna o índice do elemento que está após o cursor E previous( ): recupera o elemento anterior e posiciona o cursor antes dele int previousindex( ): retorna o índice do elemento que está antes do cursor void set(e e): substitui o último elemento retornado pelos métodos next( ) e previous( ) Obs.: o cursor deste tipo de iterator sempre permanece entre dois elementos da lista.

19 Implementações para listas Vector Listas Disponível desde o JSE 1.0 Mecanismo de armazenamento: vetor de objetos Operações sincronizadas (redução de desempenho) Métodos originais coincidentes com métodos da interface List o addelement( ) = add( ) ArrayList Disponível desde o JSE 1.2 Mecanismo de armazenamento: vetor de objetos Capacidade inicial padrão: 10 Redimensionamento: cópia dos elementos para um vetor maior Operações não sincronizadas (aumento de desempenho) ArrayList(int initialcapacity): capacidade inicial customizada ensurecapacity(int mincapacity): garante uma capacidade mínima trimtosize( ): elimina posições não ocupadas

20 Implementações para listas LinkedList Listas Disponível desde o JSE 1.2 Mecanismo de armazenamento: lista duplamente encadeada Implementação completa da interface List Uniformidade na recuperação, inserção e remoção de elementos o Controle nas duas extremidades Outras aplicações: pilhas e filas

21 Listas Exemplos ExemploCollection colecao : Collection<Contato> + main (String args[]) exibirestado () nome String : String Contato Contato () Contato (String nome, String ) getnome () get () setnome (String nome) set (String ) tostring () equals (Object obj) hashcode () : String : String : String : boolean : int ExemploListaInclusao lista : List<Contato> + main (String args[]) incluir (int posicao) relatorio () ExemploArrayList lista : List<Contato> + main (String args[]) incluir () excluir () alterar () consultar () relatorio () ExemploLinkedList lista : LinkedList<Contato> + main (String args[]) incluir () excluir () consultar () relatorio ()

22 Listas Código 21.1 Contato.java public boolean equals( ) if (obj == null) return false; if (getclass()!= obj.getclass()) return false; if (this == obj) return true; final Contato other = (Contato) obj; if (nome == null && other.nome!= null) return false; if (nome!= null && other.nome == null) return false; if (!nome.equals(other.nome)) return false; return true; public int hashcode( ) return 31 + ((nome == null)? 0 : nome.hashcode());

23 Listas Código 21.2 ExemploCollection.java Atributo: lista de contatos (ArrayList) exibirestado( ): indicar estado e tamanho da lista main( ): Permitir o registro de um número indefinido de contatos Não permitir o registro de dois contatos com o mesmo nome o Exibir mensagem de erro Recuperar a lista de contatos com um foreach Recuperar a lista de contatos com um iterator Exibir o estado da coleção Esvaziar a coleção Exibir novamente o estado da coleção

24 Listas Código 21.3 ExemploListaInclusao.java Atributo: lista de contatos (ArrayList) incluir(int posicao) Permitir a inclusão de um contato na lista Incluir na posição especificada Não permitir o registro de dois contatos com o mesmo nome relatorio( ) Exibir a lista de contatos registrados main( ): Exibir um diálogo com as três opções do aplicativo Executar o método correspondente

25 Listas Código 21.4 ExemploArrayList.java Atributo: lista de contatos (ArrayList) incluir(): incluir contato no final da lista Não permitir nome duplicado excluir(): excluir contato com base no nome informado Exibir mensagem de confirmação com dados do contato excluído Se o nome não for encontrado, exibir mensagem de erro alterar(): alterar o de um contato com base no nome Exibir mensagem de confirmação Se o nome não for encontrado, exibir mensagem de erro consultar(): consultar um registro com base no nome Se o nome não for encontrado, exibir mensagem de erro relatorio(): exibir a lista de contatos registrados

26 Listas Métodos da classe LinkedList E getfirst( ): retorna o primeiro elemento E getlast( ): retorna o último elemento E removefirst( ): remove o primeiro elemento E removelast( ): remove o último elemento void addfirst(e e): insere elemento no início void addlast(e e): insere elemento no final boolean removefirstoccurrence(object o): remove a primeira ocorrência do objeto especificado boolean removelastoccurrence(object o): remove a última ocorrência do objeto especificado Iterator<E> descendingiterator( ): retorna um iterator para navegar do final para o início da lista

27 Listas Código 21.5 ExemploLinkedList.java Atributo: lista de contatos incluir(): permitir a escolha do local de inclusão (Início ou Final) excluir(): permitir a escolha do local da exclusão Se a lista estiver vazia, exibir mensagem de erro consultar(): permitir a escolha do local da consulta Se a lista estiver vazia, exibir mensagem de erro relatorio(): exibir a lista de contatos na ordem inversa Utilizar um iterator descendente para recuperar elementos

28 java.util.stack Pilhas Disponível desde o JSE 1.0 Derivada de java.util.vector Sincronizada = menos eficiência Estrutura poluída: métodos herdados java.util.linkedlist Disponível desde o JSE 1.2 Não sincronizada = mais eficiência Métodos uniformes

29 Pilhas Código 21.6 ExemploPilha.java Atributo: pilha de textos main() Capte qualquer número de textos e insiraos na pilha (push) Percorra a pilha, recupere e remova todos os seus elementos (pop) Exiba uma mensagem com todos os textos recuperados ExemploPilha pilha : LinkedList<String> + main (String args[])

30 Filas Código 21.7 ExemploFila.java Atributo: fila de textos main() Capte qualquer número de textos e insiraos na fila (add) Percorra a fila, recupere e remova todos os seus elementos (remove) Exiba uma mensagem com todos os textos recuperados ExemploFila fila : LinkedList<String> + main (String args[])

31 Filas Métodos da interface java.util.queue boolean add(e e): inclui elemento no final da fila boolean offer(e e): inclui elemento no final da fila E remove( ): remove elemento do início da fila E pool( ): remove elemento do início da fila E element( ): recupera primeiro elemento E peek( ): recupera primeiro elemento Resultado na falha dos métodos Lançam exceções: add( ), remove( ) e element( ) Retornam valor especial: offer( ), pool( ) e peek( )

32 Classe java.util.priorityqueue Filas Representa uma fila de prioridade Elementos ordenados de acordo com um critério Determinação do critério de ordenação Opção 1: objetos realizam a interface Comparable O método compareto( ) é utilizado Opção 2: uso de um comparador Comparador informado ao construtor da fila O método compare( ) é utilizado

33 Exemplo de fila de prioridade Fila de pacientes Critérios de ordenação: Filas Primário: gravidade do estado de saúde Secundário: ordem de chegada (número da ficha) gravidade * + + MINIMA PEQUENA MEDIA ALTA ALTISSIMA indicador descricao <<Enum>> Gravidade : EnumConstant : EnumConstant : EnumConstant : EnumConstant : EnumConstant : int : String = 1,"Mínima" = 2,"Pequena" = 3,"Média" = 4,"Alta" = 5,"Altíssima" Gravidade (int indicador, String descricao) getindicador () getdescricao () : int : String ficha nome gravidade Paciente : int : String : Gravidade setficha (int ficha) setnome (String nome) setgravidade (Gravidade gravidade) tostring () compareto (Paciente outro) ExemploFilaPrioridade fila : Queue<Paciente> + main (String args[]) : String : int

34 Código 21.8 Gravidade.java Filas Enumeração utilizada para classificar a gravidade do estado de saúde dos pacientes. Código 21.9 Paciente.java Representa o registro de chegada de cada paciente. Atributos: ficha: número que identifica a ordem de chegada nome: nome completo do paciente gravidade: a gravidade de seu estado de saúde Métodos: tostring( ): Ficha nº <ficha>: <nome> (Gravidade <descrição>) compareto( ): define os critérios de ordenação (gravidade/chegada)

35 Filas Código ExemploFilaPrioridade.java Permita o registro de qualquer quantidade de pacientes Solicite o nome e a prioridade como nos diálogos abaixo Utilize um contador para gerar o número da ficha Ao final, recupere e remova todos os elementos da fila Exiba uma mensagem com todos estes elementos

36 Conceito Conjuntos Coleção que não pode ter duplicatas Abstração dos conjuntos matemáticos API <E> Collection <E> Set HashSet<E> SortedSet <E> NavigableSet <E> TreeSet<E>

37 Conjuntos Código ExemploHashSet.java Crie o conjunto como uma instância da classe HashSet Permita a inclusão de qualquer quantidade de itens de compra Experimente inserir itens repetidos Ao final, liste todos os itens gravados (utilize um laço foreach) ExemploHashSet conjunto : Set<String> + main (String args[])

38 Conjuntos Código ExemploTreeSet.java Crie o conjunto como uma instância da classe TreeSet Permita a inclusão de qualquer quantidade de itens de compra Experimente inserir itens repetidos Ao final, liste todos os itens gravados (utilize um laço foreach) ExemploTreeSet conjunto : Set<String> + main (String args[])

39 Conceito Mapas Coleção que vincula chaves a valores Chaves não podem ser duplicadas API Map <K,V> AbstractMap<K,V> {abstract} <K,V> SortedMap NavigableMap <K,V> TreeMap<K,V> HashMap<K,V>

40 Mapas Métodos da interface java.util.map V get(object key): retorna o valor associado à chave indicada V put(k key, V value): adiciona um par de chave/valor Set<K> keyset( ): retorna o conjunto de chaves do mapa V remove(object key): remove a entrada correspondente à chave int size( ): retorna o número de elementos

41 Mapas Código ExemploHashMap.java Crie o mapa como uma instância da classe HashMap Permita a inclusão de qualquer quantidade de siglas e dos significados correspondentes Percorra o mapa e recupere todas as siglas e significados Crie um conjunto (TreeSet) com as chaves do mapa Utilize um laço foreach para percorrer o conjunto ExemploHashMap mapa : Map<String, String> + main (String args[])

42 Mapas Código ExemploTreeMap.java Crie o mapa como uma instância da classe TreeMap Permita a inclusão de qualquer quantidade de siglas e dos significados correspondentes Percorra o mapa e recupere todas as siglas e significados Crie um conjunto (Set) com as chaves do mapa Utilize um laço foreach para percorrer o conjunto ExemploTreeMap mapa : Map<String, String> + main (String args[])

43 Ordenação de Listas Métodos estáticos da classe java.util.collections <T extends Comparable<? super T>> void sort(list<t> list) <T> void sort(list<t> list, Comparator<? super T> c) <T> Comparator<T> reverseorder( ) void reverse(list<?> list) void shuffle(list<?> list)

44 Ordenação de Listas Código OrdenacaoSimples.java Crie uma nova lista (LinkedList) Permita a inclusão de qualquer quantidade de textos Ordene os elementos após a inclusão de todos Recupere e apresente a lista de todos os elementos da lista OrdenacaoSimples lista : List<String> + main (String args[])

45 Ordenação de Listas Código OrdenacaoInversa.java Crie uma nova lista (LinkedList) Permita a inclusão de qualquer quantidade de textos Ordene os elementos após a inclusão de todos Ordem alfabética descendente Use um comparador Recupere e apresente a lista de todos os elementos da lista OrdenacaoInversa lista : List<String> + main (String args[])

46 Ordenação de Listas Comparable <T> FunNomeComparator + compare (Funcionario func1, Funcionario func2) : int matricula nome salario Funcionario : int : String : double tostring () compareto (Funcionario outro)... : String : int... OrdenacaoPersonalizada lista : List<Funcionario> + main (String args[]) incluir () ordenar () inverter () desordenar () exibir () Comparator (util) <T> FunSalarioComparator + compare (Funcionario func1, Funcionario func2) : int

47 Ordenação de Listas Código Funcionario.java tostring( ): Funcionário <matrícula>: <nome> <salário> compareto( ): ordenação padrão (pela matrícula) Código FunNomeComparator.java compare( ): ordenação pelo nome Código FunSalarioComparator.java compare( ): ordenação pelo salário

48 Ordenação de Listas Código OrdenacaoPersonalizada.java Instanciação do atributo: LinkedList main(): exibir opções e invocar métodos correspondentes incluir( ): permitir a inclusão de qualquer número de registros ordenar( ): ordenar com base em opção do usuário inverter( ): inverter a ordem dos registros desordenar( ): reorganizar aleatóriamente os registros exibir( ): apresentar a lista de funcionários registrados

49 Pesquisa Binária em Listas Métodos estáticos da classe java.util.collections <T> int binarysearch(list<? extends Comparable<? super T>> list, T key) O retorno é a posição da chave (ou 1) Os elementos devem realizar a interface comparable Os elementos devem estar ordenados pela ordem natural <T> int binarysearch(list<? extends T> list, T key, Comparator<? super T> c) O retorno é a posição da chave (ou 1) Os elementos devem estar ordenados de acordo com o comparador

50 Pesquisa Binária em Listas Código ExemploPesquisaBinaria.java Instanciação do atributo: LinkedList main(): exibir opções e invocar métodos correspondentes incluir( ): permitir a inclusão de qualquer número de registros pesquisar( ): exibir as opções de pesquisa e invocar os métodos correspondentes Métodos: pesquisarpelamatricula( ), pesquisarpelonome( ) e pesquisarpelosalario( ). Se a chave for localizada, apresentar a posição em que se encontra Se a chave não for localizada, exibir uma mensagem de erro exibir( ): apresentar a lista de funcionários registrados ExemploPesquisaBinaria lista : List<Funcionario> + main (String args[]) incluir () pesquisar () pesquisarpelamatricula () pesquisarpelonome () pesquisarpelosalario () exibir ()

51 Estatísticas de Coleções Métodos estáticos da classe java.util.collections min(): recupera o menor valor de uma coleção max( ): recupera o maior valor de uma coleção frequency( ): frequencia de um objeto dado na coleção

52 Estatísticas de Coleções Código ExemploEstatisticas.java Instanciação do atributo: LinkedList main(): exibir opções e invocar métodos correspondentes incluir( ): permitir a inclusão de qualquer número de registros verlimites( ): exibir o menor e o maior salário verfrequencias( ): exibir os diferentes salários recebidos pelos funcionários cadastrados e a quantidade de funcionários que recebe cada um deles exibir( ): apresentar a lista de funcionários registrados ExemploEstatisticas lista : List<Funcionario> + main (String args[]) incluir () verlimites () verfrequencias () exibir ()

53 Manipulação de Vetores Métodos estáticos da classe java.util.arrays copyof(): cria uma cópia de um vetor com nova capacidade sort( ): ordena os elementos de um vetor binarysearch( ): realiza uma pesquisa binária Algumas implementações destes métodos public static <T> T[] copyof(t[] original, int newlength) public static void sort(object[] a) public static <T> void sort(t[] a, Comparator<? super T> c) public static int binarysearch(object[] a, Object key) public static <T> int binarysearch(t[] a, T key, Comparator<? super T> c)

54 Manipulação de Vetores Código ExemploVetor.java Inicialmente, instancie o vetor com apenas 2 posições Permita que o usuário grave quantos textos desejar neste vetor Dobre a capacidade do vetor sempre que ela for ultrapassada Após as inclusões, elimine as posições desocupadas Ordene os textos informados Exiba uma mensagem com o conteúdo do vetor Inicie um procedimento para a realização de pesquisas Se o texto for encontrado, indique a sua posição no vetor Caso contrário, indique que ele não foi encontrado ExemploVetor textos : String[] + main (String args[])

55 Exercício 1 Crie uma classe, chamada Aluno e dois comparadores para ela, chamados AlunoNomeComparator e AlunoNascimentoComparator. Procure implementar estas três classes em conformidade com as especificações contidas no diagrama de classes que é apresentado pela figura abaixo.

56 Exercício 1 Os métodos de escrita dos três atributos da classe Aluno devem validar os dados recebidos antes de graválos. Se um dado inválido for recebido por algum destes métodos, ele deve disparar uma exceção com uma mensagem que indique a regra que foi violada. Defina você mesmo as regras que serão aplicadas para validar os dados relativos a cada um dos atributos. Implemente o método equals( ) da classe Aluno de forma que duas instâncias desta classe sejam consideradas iguais sempre que tiverem o mesmo valor no atributo que representa a matrícula do aluno. Este atributo também deve ser utilizado na implementação do método hashcode( ) de tal forma que dois alunos com a mesma matrícula também gerem o mesmo código de hash.

57 Exercício 1 O método compareto( ) deve ser implementado pela classe Aluno em função de ter se comprometido a realizar a interface Comparable. Este método define a ordenação natural das instâncias desta classe. Implemente este método de forma que ele ordene os objetos desta classe com base na matrícula dos alunos. As classes AlunoNomeComparator e AlunoNascimentoComparator, por sua vez, devem ser implementadas de tal modo que possam ser empregadas para realizar a ordenação destes objetos utilizando os atributos nome e nascimento, respectivamente.

58 Exercício 2 Crie um novo aplicativo, chamado CadastroAluno, que permita realizar o cadastro de alunos. O primeiro diálogo produzido por este aplicativo deve ter as opções que permitam o acesso a todas as operações suportadas por ele. A figura abaixo ilustra qual deve ser a aparência deste diálogo. A operação de inclusão consiste em solicitar a matrícula, o nome e a data de nascimento de um aluno, gravar todos estes dados em uma instância da classe Aluno e adicionar esta instância a uma coleção. Se um dos dados informados for inválido, o aplicativo deve exibir uma mensagem de erro e solicitálo novamente. Se já houver um aluno cadastrado com a matrícula informada, o aplicativo deve exibir uma mensagem de erro e encerrar a operação.

59 Exercício 2 A operação de exclusão consiste em solicitar a matrícula de um aluno e excluir o objeto correspondente da coleção. Se a coleção estiver vazia, uma mensagem de erro deve ser exibida e esta operação deve ser encerrada. Se a matrícula informada não for válida, uma mensagem de erro deve ser exibida e ela deve ser solicitada novamente. Se não houver nenhum aluno cadastrado com a matrícula informada, deve ser exibida uma mensagem de erro e a operação deve ser encerrada. A operação de alteração consiste em solicitar a matrícula de um aluno, em localizar a posição onde seu cadastro foi gravado na coleção e permitir que seu nome e sua data de nascimento sejam atualizados. Se não houver nenhum cadastro gravado, o aplicativo deve exibir uma mensagem de erro e encerrar a operação. Se um dado inválido for informado, o aplicativo deve exibir uma mensagem de erro e solicitálo novamente. Se não houver nenhum aluno cadastrado com a matrícula informada, uma mensagem de erro deve ser exibida e a operação deve ser encerrada.

60 Exercício 2 A operação de consulta consiste em solicitar a matrícula de um aluno, em recuperar seu nome e data de nascimento e apresentálos através de uma mensagem. Se não houver nenhum cadastro gravado, o aplicativo deve exibir uma mensagem de erro e encerrar a operação. Se a matrícula informada for inválida, uma mensagem de erro deve ser exibida e ela deve ser solicitada novamente. Se não houver nenhum aluno cadastrado com a matrícula informada, uma mensagem de erro deve ser exibida e a operação deve ser encerrada. A operação de ordenação consiste em permitir que se escolha uma opção de ordenação para os cadastros de alunos que se encontram gravados na coleção. Se não houver nenhum cadastro gravado, o aplicativo deve exibir uma mensagem de erro e encerrar a operação. Devese permitir a escolha de uma de três opções: ordenálos pela matrícula, pelo nome ou pela data de nascimento.

61 Exercício 2 O relatório deve apresentar os dados de todos os alunos cadastrados através de uma mensagem gráfica. Se não houver nenhum cadastro gravado, uma mensagem de erro deve ser exibida e a operação deve ser encerrada.

62 Exercício 3 Crie um novo aplicativo, chamado SorteioNumeros, que realize o sorteio de dez números inteiros. Os números sorteados devem ser exibidos através de uma mensagem gráfica similar à que é ilustrada pela figura abaixo. Os números sorteados não podem ser inferiores a 101 e não podem ser superiores a 200. Não deve ser permitido que um mesmo número seja incluído duas vezes no resultado do sorteio. Estes números devem ser apresentados em ordem crescente. Armazene os números sorteados em um tipo de coleção que facilite a realização desta operação.

63 Exercício 4 Crie um novo aplicativo, chamado ValidadorDelimitadores, que capte uma expressão qualquer e indique se todos os delimitadores abertos foram fechados adequadamente. A figura abaixo ilustra o seu funcionamento.

64 Exercício 4 A expressão deverá ser informada através de um diálogo gráfico. Somente três tipos de delimitadores devem ser analisados por este aplicativo: chaves, colchetes e parênteses. Qualquer outro caractere deve ser ignorado para fins de avaliação da expressão. Utilize uma pilha de caracteres para implementar a solução para o problema proposto. Adicione cada delimitador de abertura que for encontrado a esta pilha. Sempre que um delimitador de fechamento for encontrado na expressão, verifique se o delimitador de abertura correspondente se encontra no topo da pilha. Caso eles não coincidam, registre o erro. Se um delimitador de fechamento for encontrado quando a pilha estiver vazia ou se não houver nenhum delimitador de fechamento para um delimitador de abertura, registre o erro.

65 Contato Com o autor: Rui Rossi dos Santos livros@ruirossi.pro.br Web Site: Com a editora: Editora NovaTerra Telefone: (21) Web Site:

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade

Leia mais

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do

Leia mais

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel. 5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 22 Associações entre Classes Objetivos do Capítulo Indicar os diferentes aspectos de um relacionamento entre classes que podem ser expressos através de uma associação. Descrever o significado

Leia mais

Coleções. João Paulo Q. dos Santos

Coleções. João Paulo Q. dos Santos Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util

Leia mais

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira API e Coleções Java Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções

Leia mais

Capítulo 13. Encapsulamento. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 13. Encapsulamento. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 13 Encapsulamento Objetivos do Capítulo Indicar a importância do mecanismo de encapsulamento no contexto do desenvolvimento de software utilizando a programação orientada a objetos. Apresentar

Leia mais

Capítulo 9. Vetores e Matrizes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 9. Vetores e Matrizes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 9 Vetores e Matrizes Objetivos do Capítulo Apresentar os dois tipos fundamentais de estruturas de dados estáticas disponíveis no Java: os vetores e as matrizes. Indicar como os vetores podem ser

Leia mais

Java Coleções. Rodrigo C. de Azevedo

Java Coleções. Rodrigo C. de Azevedo Java Coleções Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer

Leia mais

Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Collections Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt) Coleções em Java As coleções agrupam vários

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam

Leia mais

Rafael Santos. Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos. Rafael Santos - www.lac.inpe.br/ rafael.

Rafael Santos. Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos. Rafael Santos - www.lac.inpe.br/ rafael. Coleções e Aplicações Rafael Santos Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos Rafael Santos - www.lac.inpe.br/ rafael.santos 1 / 54 Tópicos 1 Sobre... 2 Revisão de Java 3

Leia mais

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 11 Conceitos de Orientação a Objetos Objetivos do Capítulo Introduzir os conceitos fundamentais da Programação Orientada a Objetos. Apresentar o significado dos objetos e das classes no contexto

Leia mais

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo

Leia mais

Java Util Collections - Interfaces Interfaces definidas

Java Util Collections - Interfaces Interfaces definidas Java Util Collections - Interfaces Interfaces definidas 245 Collection Raiz da hierarquia Grupo mais genérico de elementos Não garante nas implementações Duplicatas Ordenação Não possui nenhuma implementação

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,

Leia mais

5 Caso de estudo O cartão fidelidade

5 Caso de estudo O cartão fidelidade 5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

Leia mais

Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br

Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Conteúdo: Coleções Material elaborado com contribuição do Professor Luiz André Coleções Uma

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...

Leia mais

Curso Java Starter. www.t2ti.com 1

Curso Java Starter. www.t2ti.com 1 1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do

Leia mais

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java Como Plataforma... 6 Finalidade... 9 Características... 11 Perspectivas... 13 Exercícios... 14 CAPÍTULO

Leia mais

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes. Programação Java em Ambiente Distribuído Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate Douglas Rocha Mendes Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados

Leia mais

Capítulo 19. Algoritmos de Ordenação e de Pesquisa. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 19. Algoritmos de Ordenação e de Pesquisa. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 19 Algoritmos de Ordenação e de Pesquisa Objetivos do Capítulo Conceituar ordenação e pesquisa. Apresentar os algoritmos de ordenação por troca, por seleção e por inserção. Explorar os algoritmos

Leia mais

Desafios de Programação TCC-00.254 Turma A-1

Desafios de Programação TCC-00.254 Turma A-1 Desafios de Programação TCC-00.254 Turma A-1 Conteúdo Estruturas de Dados Elementares Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2015.1/tcc-00.254

Leia mais

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena Trabalho Experimental Sistema de Gestão Hoteleira 1. Objetivo Este trabalho tem o objetivo de consolidar o conhecimento sobre UML e

Leia mais

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br AULA 12 CLASSES DA API JAVA Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br CLASSES DA API JAVA A maioria dos programas de computador que resolvem problemas do

Leia mais

Tipos de Dado Abstrato: Listas, Filas e Pilhas

Tipos de Dado Abstrato: Listas, Filas e Pilhas Tipos de Dado Abstrato: Listas, Filas e Pilhas Estruturas de Dados Prof. Vilson Heck Junior Introdução Tradicionalmente conhecidos como Tipos de Dado Abstrato, são algumas Estruturas de Dados básicas e

Leia mais

Capítulo 7. Estruturas de Decisão. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 7. Estruturas de Decisão. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 7 Estruturas de Decisão Objetivos do Capítulo Apresentar as estruturas de decisão disponíveis no Java e sua aplicabilidade para promover desvios no fluxo de execução dos aplicativos. Indicar a

Leia mais

01/06/2016 INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS. Programa Capítulo 15. Coleções. A Interface List. A Classe LinkedList. Exercício.

01/06/2016 INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS. Programa Capítulo 15. Coleções. A Interface List. A Classe LinkedList. Exercício. INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 15 Coleções A Interface List A Classe LinkedList Exercício A Interface

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM Java 2ª Edição n Sumário VII Sumário CAPÍTULO 1 Introdução ao Java... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java como Plataforma... 6 Finalidade...

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Trabalho 3: Agenda de Tarefas

Trabalho 3: Agenda de Tarefas INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Tratamento de Exceções Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 o Exceção: condição anormal Introdução o Causas: Falhas na implementação Falhas na operação o

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Everton Coimbra de Araújo Orientação a Objetos com Java Simples, Fácil e Eficiente Visual Books Sumário Prefácio... 11 Introdução... 13 1 Introdução à Orientação a Objetos... 17 1.1 Conceitualização...

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 31 de outubro de 2017 Marco Antonio

Leia mais

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;} 2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II Exercício : Construtores são métodos especiais sem tipo de retorno (nem mesmo void) e de mesmo nome que a classe que são invocados quando da criação

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Desenvolvimento e Projeto de Aplicações Web

Desenvolvimento e Projeto de Aplicações Web Desenvolvimento e Projeto de Aplicações Web cecafac@gmail.com Coleções Conteúdo 1 Introdução Desde a versão 1.2 do JDK, a plataforma J2SE inclui um framework de coleções (Collections) Uma coleção é um

Leia mais

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Objetivos do Capítulo

Objetivos do Capítulo Capítulo 33 Arquivos e Fluxos de Dados Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Objetivos do Capítulo Analisar os conceitos de fluxo de entrada e de fluxo de saída de

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Manual de Utilização

Manual de Utilização Manual de Utilização Versão 1.0 18/01/2013 Sempre consulte por atualizações deste manual em nossa página. O Cotação Web está em constante desenvolvimento, podendo ter novas funcionalidades adicionadas

Leia mais

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é

Leia mais

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

Manual da Turma Virtual: MATERIAIS. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo: Manual da Turma Virtual: MATERIAIS Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo: MENU TURMA VIRTUAL MENU MATERIAIS CONTEÚDO/PÁGINA WEB Esta operação possibilita que

Leia mais

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Estruturas de Dados Pilhas, Filas e Deques

Estruturas de Dados Pilhas, Filas e Deques Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem

Leia mais

Tipos agregados. Tipos estruturados

Tipos agregados. Tipos estruturados Tipos agregados ou Tipos estruturados permitem a implementação de agrupamentos de dados. exemplos: lista de valores que representam as taxas mensais de inflação durante um ano; ficha de cadastro de um

Leia mais

Implementação de Classe e Auto-Relacionamento em Java

Implementação de Classe e Auto-Relacionamento em Java UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Tabela de símbolos: tabelas de espalhamento

Tabela de símbolos: tabelas de espalhamento Tabela de símbolos: tabelas de espalhamento Marcelo K. Albertini 14 de Janeiro de 2014 2/28 Resumo de complexidades Análises para operação efetuada após N inserções pior caso caso médio keys chave get

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Collections Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 08 Arranjos, Listas, Filas, Pilhas, Conjuntos e Mapas 1 Introdução Java fornece implementação de Estruturas de Dados recorrentemente utilizadas.

Leia mais

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP. Slide 1 Conceito Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP. Instruções de criação inseridas no método _jspservice( ). Slide 2 Identificação e tipo Identificação Tipo application

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

JDBC Java Database Connectivity

JDBC Java Database Connectivity 5 JDBC Java Database Connectivity Prof. Autor: Daniel Morais dos Reis e-tec Brasil Programação Avançada Para Web Página1 Meta Trabalhar com bancos de dados em aplicações web em JSP através das classes

Leia mais

Exercícios de Revisão Java Básico

Exercícios de Revisão Java Básico Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1

Leia mais

INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15

INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15 INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15 1. Um número racional é expresso por dois inteiros: um numerador e um denominador (este último diferente de zero!). Implemente um TAD para representar números

Leia mais

Livro Caixa. www.controlenanet.com.br. Copyright 2015 - ControleNaNet

Livro Caixa. www.controlenanet.com.br. Copyright 2015 - ControleNaNet www.controlenanet.com.br Copyright 2015 - ControleNaNet Conteúdo Tela Principal... 3 Como imprimir?... 4 As Listagens nas Telas... 7 Clientes... 8 Consulta... 9 Inclusão... 11 Alteração... 13 Exclusão...

Leia mais

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com

Leia mais

Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes

Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes Modelagem e Implementação de Aquário de Peixes- por Jorge Fernandes - Página 1 Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes Jorge Fernandes Natal, Agosto de

Leia mais

Agendamento para Importação de Notas Fiscais

Agendamento para Importação de Notas Fiscais LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA VERSÃO 2 (Orientamos aos clientes que utilizam banco de dados SQL, para efetuarem a atualização preferencialmente após o encerramento das atividades do dia, acessando

Leia mais

Alberto Costa Neto DComp - UFS. Coleções

Alberto Costa Neto DComp - UFS. Coleções Alberto Costa Neto DComp - UFS Coleções [ Conteúdo ] Introdução Interfaces e Classes para Coleções Coleções Especiais Classes de Coleções Históricas Suporte Algorítmico Questões de Utilização Novas coleções

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

Coleções. Prof. Marcelo Roberto Zorzan

Coleções. Prof. Marcelo Roberto Zorzan Coleções Prof. Marcelo Roberto Zorzan Coleções Aula de Hoje Introdução Coleções podem representar estruturas de dados complexas de forma transparente para o programador. Exemplos: Músicas favoritas armazenadas

Leia mais

15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido PARTE III: Java e OO - detalhes Membros de classe e instâncias Pacotes Visibilidade Classes aninhadas Membros de classe e de instância De classe Static Método não necessita de objeto para ser chamado.

Leia mais

Programação Concorrente em java - Exercícios Práticos Abril 2004

Programação Concorrente em java - Exercícios Práticos Abril 2004 Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda

Leia mais

T U T O R I A I S WEB OF SCIENCE TUTORIAL. Biblioteca da Escola de Engenharia da UFRGS. WEB OF SCIENCE - Tutorial

T U T O R I A I S WEB OF SCIENCE TUTORIAL. Biblioteca da Escola de Engenharia da UFRGS. WEB OF SCIENCE - Tutorial T U T O R I A I S WEB OF SCIENCE TUTORIAL Biblioteca da Escola de Engenharia da UFRGS WEB OF SCIENCE - Tutorial O que é? O Web of Science é uma base de dados que disponibiliza acesso a mais de 9.200 títulos

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Manual Operacional SIGA

Manual Operacional SIGA SMS - ATTI Maio -2013 Conteúdo Sumário... 2 PPD -IPD... 3 Adicionar Paciente... 4 Laudo Médico... 6 Avaliação do Enfermeiro... 11 Visita Domiciliar... 14 Dados do Paciente no Programa... 16 Histórico do

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Algoritmos e Estruturas de Dados II. Trabalho Prático 2 Algoritmos e Estruturas de Dados II Entrega: 24/09/08 Devolução: 15/10/08 Trabalho individual Prof. Jussara Marques de Almeida Trabalho Prático 2 Você foi contratado pela XOL X Online para desenvolver

Leia mais

Desenvolvimento de um Simulador de Gerenciamento de Memória

Desenvolvimento de um Simulador de Gerenciamento de Memória Desenvolvimento de um Simulador de Gerenciamento de Memória Ricardo Mendes do Nascimento. Ciência da Computação Universidade Regional Integrada do Alto Uruguai e das Missões (URI) Santo Ângelo RS Brasil

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Pag: 1/20. SGI Manual. Controle de Padrões

Pag: 1/20. SGI Manual. Controle de Padrões Pag: 1/20 SGI Manual Controle de Padrões Pag: 2/20 Sumário 1 Introdução...3 2 Cadastros Básicos...5 2.1 Grandezas...5 2.2 Instrumentos (Classificação de Padrões)...6 3 Padrões...9 3.1 Padrão Interno...9

Leia mais

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Algoritmos e Estruturas de Dados II Pesquisa em Memória Primária Pesquisa: Recuperação de informação em um grande volume de dados Informação é dividida em registros e cada

Leia mais

Reuso com Herança a e Composiçã

Reuso com Herança a e Composiçã Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:

Leia mais

MODULO DE GESTÃO MANUTENÇÃO DE MATRÍCULA. O módulo de Gestão tem por objetivo gerenciar as atividades que ocorrem durante um ano letivo.

MODULO DE GESTÃO MANUTENÇÃO DE MATRÍCULA. O módulo de Gestão tem por objetivo gerenciar as atividades que ocorrem durante um ano letivo. MANUTENÇÃO DE MATRÍCULA 1. Informações Gerais. O módulo de Gestão tem por objetivo gerenciar as atividades que ocorrem durante um ano letivo. O item do menu Manutenção de Matrícula tem por objetivo manter

Leia mais

Vendas. Manual do Usuário. Copyright 2014 - ControleNaNet

Vendas. Manual do Usuário. Copyright 2014 - ControleNaNet Manual do Usuário Copyright 2014 - ControleNaNet Conteúdo A Ficha de Vendas...3 Os Recibos...6 Como imprimir?...7 As Listagens...9 Clientes... 10 Consulta... 11 Inclusão... 13 Alteração... 14 Exclusão...

Leia mais

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE RORAIMA DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SIGRH - FREQUÊNCIA

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE RORAIMA DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SIGRH - FREQUÊNCIA SIGRH - FREQUÊNCIA Boa Vista RR, 21 novembro de 2014. É o módulo do Sistema Integrado de Gestão de Recursos Humanos (SIGRH) que tem por objetivo permitir o gerenciamento das informações relacionadas ao

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

Leia mais

Tópicos em Engenharia de Computação

Tópicos em Engenharia de Computação Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

THREADS EM JAVA. George Gomes Cabral

THREADS EM JAVA. George Gomes Cabral THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores

Leia mais

Windows Explorer. Prof. Valdir

Windows Explorer. Prof. Valdir Do Inglês Explorador de Janelas, o é o programa para gerenciamento de discos, pastas e arquivos no ambiente Windows. É utilizado para a cópia, exclusão, organização e movimentação de arquivos além de criação,

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

2ª Lista de Exercícios

2ª Lista de Exercícios Universidade Federal de Minas Gerais Departamento de Ciência da Computação Algoritmos e Estruturas de Dados II (Turmas M, N, W, F) 1º Semestre de 2012 Profs. Camilo Oliveira, Gisele Pappa, Ítalo Cunha,

Leia mais

Olimpíada Brasileira de Robótica. Manual de Inscrição. Sistema OLIMPO Instruções

Olimpíada Brasileira de Robótica. Manual de Inscrição. Sistema OLIMPO Instruções Olimpíada Brasileira de Robótica Manual de Inscrição Sistema OLIMPO Instruções Versão 1.1 Abril 2013 OLIMPO Sistema de Gerenciamento de Olimpíadas e Eventos Científicos Olimpíada Brasileira de Robótica

Leia mais