GithubHelp home page GithubHelp logo

collections-java-api-2023's Introduction

SET

Set interface hierarchy Java
Hierarchy of Collection Framework in Java

  • A interface Set é uma coleção que não pode conter elementos duplicados.
  • Essa interface representa o conceito matemático de um conjunto e é usada para representar conjuntos, como um baralho de cartas.
  • A plataforma Java possui três implementações de Set de uso geral: HashSet, TreeSet e LinkedHashSet.
  • A interface Set não permite acesso aleatório a um elemento na coleção.
  • Para percorrer os elementos de um Set, você pode usar um iterador ou um loop foreach.
HashSet: O HashSet é uma implementação da interface Set que armazena os elementos em uma tabela hash. Ele não mantém uma ordem específica dos elementos. A principal vantagem do HashSet é que ele oferece um desempenho de busca muito eficiente, pois usa funções hash para indexar os elementos. No entanto, a ordem em que os elementos são adicionados pode não ser preservada ao percorrer o conjunto.
TreeSet: O TreeSet é uma implementação da interface Set que armazena os elementos em uma árvore binária balanceada. Isso significa que os elementos são armazenados em uma ordem classificada e são mantidos automaticamente em ordem crescente. A principal vantagem do TreeSet é que os elementos são sempre retornados na ordem classificada, o que facilita a obtenção de elementos em uma determinada ordem. No entanto, a busca e a inserção são um pouco mais lentas em comparação com o HashSet.
LinkedHashSet: O LinkedHashSet é uma implementação da interface Set que mantém a ordem de inserção dos elementos, além de usar uma tabela hash para obter um bom desempenho de busca. Ele é semelhante ao HashSet, mas também mantém uma lista duplamente vinculada que preserva a ordem de inserção. Isso permite que os elementos sejam percorridos na ordem em que foram adicionados. O LinkedHashSet é útil quando você precisa manter a ordem de inserção dos elementos e também ter um bom desempenho de busca.

Referências:

[1] "Collections in Java Tutorial." DigitalOcean Community. Disponível em: https://www.digitalocean.com/community/tutorials/collections-in-java-tutorial.

[2] "Java™ Platform, Standard Edition 17 API Specification - Class Set." Oracle. Disponível em: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html.

Fixando os Conhecimentos

Exercícios:

  1. Operações Básicas com Set
  2. Pesquisa em Set
  3. Ordenação nas Set

Operações Básicas com Set

1. Conjunto de Convidados

Crie uma classe chamada "ConjuntoConvidados" que possui um conjunto de objetos do tipo "Convidado" como atributo. Cada convidado possui atributos como nome e código do convite. Implemente os seguintes métodos:

  • adicionarConvidado(String nome, int codigoConvite): Adiciona um convidado ao conjunto.
  • removerConvidadoPorCodigoConvite(int codigoConvite): Remove um convidado do conjunto com base no código do convite.
  • contarConvidados(): Conta o número total de convidados no Set.
  • exibirConvidados(): Exibe todos os convidados do conjunto.

2. Conjunto de Palavras Únicas

Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palavras únicas como atributo. Implemente os seguintes métodos:

  • adicionarPalavra(String palavra): Adiciona uma palavra ao conjunto.
  • removerPalavra(String palavra): Remove uma palavra do conjunto.
  • verificarPalavra(String palavra): Verifica se uma palavra está presente no conjunto.
  • exibirPalavrasUnicas(): Exibe todas as palavras únicas do conjunto.


Pesquisa em Set

1. Agenda de Contatos

Crie uma classe chamada "AgendaContatos" que possui um conjunto de objetos do tipo "Contato" como atributo. Cada contato possui atributos como nome e número de telefone. Implemente os seguintes métodos:

  • adicionarContato(String nome, int numero): Adiciona um contato à agenda.
  • exibirContatos(): Exibe todos os contatos da agenda.
  • pesquisarPorNome(String nome): Pesquisa contatos pelo nome e retorna uma conjunto com os contatos encontrados.
  • atualizarNumeroContato(String nome, int novoNumero): Atualiza o número de telefone de um contato específico.

2. Lista de Tarefas

Crie uma classe chamada "ListaTarefas" que possui um conjunto de objetos do tipo "Tarefa" como atributo. Cada tarefa possui um atributo de descrição e um atributo booleano para indicar se a tarefa foi concluída ou não. Implemente os seguintes métodos:

  • adicionarTarefa(String descricao): Adiciona uma nova tarefa ao Set.
  • removerTarefa(String descricao): Remove uma tarefa do Set de acordo com a descrição, se estiver presente.
  • exibirTarefas(): Exibe todas as tarefas da lista de tarefas.
  • contarTarefas(): Conta o número total de tarefas na lista de tarefas.
  • obterTarefasConcluidas(): Retorna um Set com as tarefas concluídas.
  • obterTarefasPendentes(): Retorna um Set com as tarefas pendentes.
  • marcarTarefaConcluida(String descricao): Marca uma tarefa como concluída de acordo com a descrição.
  • marcarTarefaPendente(String descricao): Marca uma tarefa como pendente de acordo com a descrição.
  • limparListaTarefas(): Remove todas as tarefas da lista de tarefas.


Ordenação em Set

1. Cadastro de Produtos

Crie uma classe chamada "CadastroProdutos" que possui um conjunto de objetos do tipo "Produto" como atributo. Cada produto possui atributos como nome, cod, preço e quantidade. Implemente os seguintes métodos:

  • adicionarProduto(long cod, String nome, double preco, int quantidade): Adiciona um produto ao cadastro.
  • exibirProdutosPorNome(): Exibe todos os produtos do cadastro em ordem alfabética pelo nome.
  • exibirProdutosPorPreco(): Exibe todos os produtos do cadastro em ordem crescente de preço.

2. Lista de Alunos

Crie uma classe chamada "GerenciadorAlunos" que irá lidar com uma lista de alunos. Cada aluno terá atributos como nome, matrícula e nota. Implementaremos os seguintes métodos:

  • adicionarAluno(String nome, Long matricula, double media): Adiciona um aluno ao conjunto.
  • removerAluno(long matricula): Remove um aluno ao conjunto a partir da matricula, se estiver presente.
  • exibirAlunosPorNome(): Exibe todos os alunos do conjunto em ordem alfabética pelo nome.
  • exibirAlunosPorNota(): Exibe todos os alunos do conjunto em ordem crescente de nota.
  • exibirAlunos(): Exibe todos os alunos do conjunto.


Dúvidas e Suporte

Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (:

collections-java-api-2023's People

Contributors

diego-de avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.