├── .idea
├── .gitignore
├── aws.xml
├── codeStyles
│ └── codeStyleConfig.xml
├── jpa-buddy.xml
├── misc.xml
├── modules.xml
├── uiDesigner.xml
└── vcs.xml
├── README.md
├── assets
└── image
│ ├── collection-framework-methods.png
│ ├── collection-framework.png
│ ├── list-interface-hierarchy.png
│ ├── map-interface-hierarchy.png
│ └── set-interface-hierarchy.png
├── collections-java-api-2023.iml
├── out
└── production
│ └── collections-java-api-2023
│ └── main
│ └── java
│ ├── Main.class
│ ├── comparableXcomparator
│ ├── CompararAno.class
│ ├── CompararAnoAutorTitulo.class
│ ├── CompararAutor.class
│ ├── Livro.class
│ ├── Main$1.class
│ ├── Main.class
│ └── README.md
│ ├── generics
│ ├── GenericsExempleList.class
│ ├── GenericsExempleMap.class
│ ├── GenericsExempleSet.class
│ └── README.md
│ ├── list
│ ├── OperacoesBasicas
│ │ ├── CarrinhoDeCompras.class
│ │ ├── Item.class
│ │ ├── ListaTarefa.class
│ │ └── Tarefa.class
│ ├── Ordenacao
│ │ ├── ComparatorPorAltura.class
│ │ ├── OrdenacaoNumeros.class
│ │ ├── OrdenacaoPessoas.class
│ │ └── Pessoa.class
│ ├── Pesquisa
│ │ ├── CatalogoLivros.class
│ │ ├── Livro.class
│ │ └── SomaNumeros.class
│ └── README.md
│ ├── map
│ ├── OperacoesBasicas
│ │ ├── AgendaContatos.class
│ │ └── Dicionario.class
│ ├── Ordenacao
│ │ ├── AgendaEventos.class
│ │ ├── ComparatorPorAutor.class
│ │ ├── ComparatorPorPreco.class
│ │ ├── Evento.class
│ │ ├── LivrariaOnline.class
│ │ └── Livro.class
│ ├── Pesquisa
│ │ ├── ContagemPalavras.class
│ │ ├── EstoqueProdutos.class
│ │ └── Produto.class
│ └── README.md
│ └── set
│ ├── OperacoesBasicas
│ ├── ConjuntoConvidados.class
│ ├── ConjuntoPalavrasUnicas.class
│ └── Convidado.class
│ ├── Ordenacao
│ ├── Aluno.class
│ ├── CadastroProdutos.class
│ ├── ComparatorNota.class
│ ├── ComparatorPorPreco.class
│ ├── GerenciadorAlunos.class
│ └── Produto.class
│ ├── Pesquisa
│ ├── AgendaContatos.class
│ ├── Contato.class
│ ├── ListaTarefas.class
│ └── Tarefa.class
│ └── README.md
└── src
└── main
└── java
├── comparableXcomparator
├── Livro.java
├── Main.java
└── README.md
├── generics
├── GenericsExempleList.java
├── GenericsExempleMap.java
├── GenericsExempleSet.java
└── README.md
├── list
├── OperacoesBasicas
│ ├── CarrinhoDeCompras.java
│ ├── Item.java
│ ├── ListaTarefa.java
│ └── Tarefa.java
├── Ordenacao
│ ├── OrdenacaoNumeros.java
│ ├── OrdenacaoPessoas.java
│ └── Pessoa.java
├── Pesquisa
│ ├── CatalogoLivros.java
│ ├── Livro.java
│ └── SomaNumeros.java
└── README.md
├── map
├── OperacoesBasicas
│ ├── AgendaContatos.java
│ └── Dicionario.java
├── Ordenacao
│ ├── AgendaEventos.java
│ ├── Evento.java
│ ├── LivrariaOnline.java
│ └── Livro.java
├── Pesquisa
│ ├── ContagemPalavras.java
│ ├── EstoqueProdutos.java
│ └── Produto.java
└── README.md
└── set
├── OperacoesBasicas
├── ConjuntoConvidados.java
├── ConjuntoPalavrasUnicas.java
└── Convidado.java
├── Ordenacao
├── Aluno.java
├── CadastroProdutos.java
├── GerenciadorAlunos.java
└── Produto.java
├── Pesquisa
├── AgendaContatos.java
├── Contato.java
├── ListaTarefas.java
└── Tarefa.java
└── README.md
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/.idea/aws.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
15 |
9 |
10 | Hierarchy of Collection Framework in Java
11 |
18 |
19 | Method Sumary Collection Interface
20 |
4 |
5 | Hierarchy of Collection Framework in Java
6 |
List
é uma coleção ordenada que permite a inclusão de elementos duplicados.
9 | - É um dos tipos de coleção mais utilizados em Java, e as classes de implementação comuns são ArrayList
e LinkedList
.
10 | - A List
se assemelha a uma matriz com comprimento dinâmico, permitindo adicionar ou remover elementos.
11 | - A interface List
fornece métodos úteis para adicionar elementos em posições específicas, remover ou substituir elementos com base no índice e obter sublistas usando índices.
12 | - A classe Collections
fornece algoritmos úteis para manipulação de List
, como ordenação (sort), embaralhamento (shuffle), reversão (reverse) e busca binária (binarySearch).
13 |
14 | > ##### *ArrayList*: O ArrayList é uma implementação da interface List que armazena os elementos em uma estrutura de array redimensionável. Isso significa que ele pode crescer automaticamente à medida que novos elementos são adicionados. A principal vantagem do ArrayList é o acesso rápido aos elementos por meio de índices, o que permite recuperar um elemento específico de forma eficiente. No entanto, adicionar ou remover elementos no meio da lista pode ser mais lento, pois requer a realocação de elementos.
15 |
16 | > ##### *LinkedList*: O LinkedList é uma implementação da interface List que armazena os elementos em uma lista duplamente vinculada. Cada elemento contém referências para o elemento anterior e próximo na lista. A principal vantagem do LinkedList é a eficiência na adição ou remoção de elementos no início ou no final da lista, pois não é necessário realocar elementos. No entanto, o acesso aos elementos por meio de índices é mais lento, pois requer percorrer a lista até o elemento desejado.
17 |
18 | > ##### *Vector*: O Vector é uma implementação antiga da interface List que é semelhante ao ArrayList, mas é sincronizada, ou seja, é thread-safe. Isso significa que várias threads podem manipular um objeto Vector ao mesmo tempo sem causar problemas de concorrência. No entanto, essa sincronização adiciona uma sobrecarga de desempenho, tornando o Vector menos eficiente do que o ArrayList em cenários em que a concorrência não é um problema. Por esse motivo, o uso do Vector é menos comum em aplicações modernas.
19 |
20 | ### Referências:
21 |
22 | [1] "Collections in Java Tutorial." DigitalOcean Community. Disponível em: https://www.digitalocean.com/community/tutorials/collections-in-java-tutorial.
23 |
24 | [2] "Java™ Platform, Standard Edition 17 API Specification - Class List." Oracle. Disponível em: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html.
25 |
26 | # Fixando os Conhecimentos
27 |
28 | Exercícios:
29 |
30 | 1. Operações Básicas com List
31 | 2. Pesquisa em List
32 | 3. Ordenação nas List
33 |
34 | ## Operações Básicas com List
35 |
36 | ### 1. Lista de Tarefas
37 | Crie uma classe chamada "ListaTarefas" que possui uma lista de tarefas como atributo. Cada tarefa é representada por uma classe chamada "Tarefa" que possui um atributo de descrição. Implemente os seguintes métodos: 38 | 39 | - `adicionarTarefa(String descricao)`: Adiciona uma nova tarefa à lista com a descrição fornecida. 40 | - `removerTarefa(String descricao)`: Remove uma tarefa da lista com base em sua descrição. 41 | - `obterNumeroTotalTarefas()`: Retorna o número total de tarefas na lista. 42 | - `obterDescricoesTarefas()`: Retorna uma lista contendo a descrição de todas as tarefas na lista. 43 |
44 | 45 | ### 2. Carrinho de Compras: 46 | 47 |Crie uma classe chamada "CarrinhoDeCompras" que representa um carrinho de compras online. O carrinho deve ser implementado como uma lista de itens. Cada item é representado por uma classe chamada "Item" que possui atributos como nome, preço e quantidade. Implemente os seguintes métodos: 48 | 49 | - `adicionarItem(String nome, double preco, int quantidade)`: Adiciona um item ao carrinho com o nome, preço e quantidade especificados. 50 | - `removerItem(String nome)`: Remove um item do carrinho com base no seu nome. 51 | - `calcularValorTotal()`: Calcula e retorna o valor total do carrinho, levando em consideração o preço e a quantidade de cada item. 52 | - `exibirItens()`: Exibe todos os itens presentes no carrinho, mostrando seus nomes, preços e quantidades. 53 |
54 | 55 | ---- 56 | 57 | ## Pesquisa em List 58 | 59 | ### 1. Catálogo de Livros 60 | 61 |Crie uma classe chamada "CatalogoLivros" que possui uma lista de objetos do tipo "Livro" como atributo. Cada livro possui atributos como título, autor e ano de publicação. Implemente os seguintes métodos: 62 | 63 | - `adicionarLivro(String titulo, String autor, int anoPublicacao)`: Adiciona um livro ao catálogo. 64 | - `pesquisarPorAutor(String autor)`: Pesquisa livros por autor e retorna uma lista com os livros encontrados. 65 | - `pesquisarPorIntervaloAnos(int anoInicial, int anoFinal)`: Pesquisa livros publicados em um determinado intervalo de anos e retorna uma lista com os livros encontrados. 66 | - `pesquisarPorTitulo(String titulo)`: Pesquisa livros por título e retorna o primeiro livro encontrado. 67 |
68 | 69 | ### 2. Soma de Números 70 | 71 |Crie uma classe chamada "SomaNumeros" que possui uma lista de números inteiros como atributo. Implemente os seguintes métodos: 72 | 73 | - `adicionarNumero(int numero)`: Adiciona um número à lista de números. 74 | - `calcularSoma()`: Calcula a soma de todos os números na lista e retorna o resultado. 75 | - `encontrarMaiorNumero()`: Encontra o maior número na lista e retorna o valor. 76 | - `encontrarMenorNumero()`: Encontra o menor número na lista e retorna o valor. 77 | - `exibirNumeros()`: Retorna uma lista contendo todos os números presentes na lista. 78 | 79 | ------- 80 | 81 | ## Ordenação em List 82 | 83 | ### 1. Ordenação de Pessoas 84 | 85 |
Crie uma classe chamada "OrdenacaoPessoas" que possui uma lista de objetos do tipo "Pessoa" como atributo. Cada pessoa possui atributos como nome, idade e altura. Implemente os seguintes métodos: 86 | 87 | - `adicionarPessoa(String nome, int idade, double altura)`: Adiciona uma pessoa à lista. 88 | - `ordenarPorIdade()`: Ordena as pessoas da lista por idade usando a interface Comparable. 89 | - `ordenarPorAltura()`: Ordena as pessoas da lista por altura usando um Comparator personalizado. 90 |
91 | 92 | ### 2. Ordenação de Números 93 | 94 |Crie uma classe chamada "OrdenacaoNumeros" que possui uma lista de números inteiros como atributo. Implemente os seguintes métodos: 95 | 96 | - `adicionarNumero(int numero)`: Adiciona um número à lista. 97 | - `ordenarAscendente()`: Ordena os números da lista em ordem ascendente usando a interface Comparable e a class Collections. 98 | - `ordenarDescendente()`: Ordena os números da lista em ordem descendente usando um Comparable e a class Collections. 99 |
100 | 101 | --- 102 | ### Dúvidas e Suporte 103 | 104 | Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (: 105 | -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/AgendaContatos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/AgendaContatos.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/Dicionario.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/Dicionario.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Ordenacao/AgendaEventos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Ordenacao/AgendaEventos.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Ordenacao/ComparatorPorAutor.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Ordenacao/ComparatorPorAutor.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Ordenacao/ComparatorPorPreco.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Ordenacao/ComparatorPorPreco.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Ordenacao/Evento.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Ordenacao/Evento.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Ordenacao/LivrariaOnline.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Ordenacao/LivrariaOnline.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Ordenacao/Livro.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Ordenacao/Livro.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Pesquisa/ContagemPalavras.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Pesquisa/ContagemPalavras.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Pesquisa/EstoqueProdutos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Pesquisa/EstoqueProdutos.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/Pesquisa/Produto.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/map/Pesquisa/Produto.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/map/README.md: -------------------------------------------------------------------------------- 1 | # MAP 2 | 3 |
4 |
5 | Hierarchy of Collection Framework in Java
6 |
39 | Crie uma classe chamada "AgendaContatos" que utilize um Map para armazenar os contatos. Cada contato possui um nome como chave e um número de telefone como valor. Implemente os seguintes métodos: 40 | 41 | - `adicionarContato(String nome, Integer telefone)`: Adiciona um contato à agenda, associando o nome do contato ao número de telefone correspondente. 42 | - `removerContato(String nome)`: Remove um contato da agenda, dado o nome do contato. 43 | - `exibirContatos()`: Exibe todos os contatos da agenda, mostrando o nome e o número de telefone de cada contato. 44 | - `pesquisarPorNome(String nome)`: Pesquisa um contato pelo nome e retorna o número de telefone correspondente. 45 |
46 | 47 | ### 2. Dicionário 48 | 49 |50 | Crie uma classe chamada "Dicionario" que utilize um Map para armazenar palavras e suas respectivas definições. Implemente os seguintes métodos: 51 | 52 | - `adicionarPalavra(String palavra, String definicao)`: Adiciona uma palavra e sua definição ao dicionário, associando a palavra à sua definição correspondente. 53 | - `removerPalavra(String palavra)`: Remove uma palavra do dicionário, dado o termo a ser removido. 54 | - `exibirPalavras()`: Exibe todas as palavras e suas definições do dicionário, mostrando cada palavra seguida de sua respectiva definição. 55 | - `pesquisarPorPalavra(String palavra)`: Pesquisa uma palavra no dicionário e retorna sua definição correspondente. 56 |
57 | 58 | --- 59 | 60 | ## Pesquisa em Map 61 | 62 | ### 1. Estoque de Produtos com Preço 63 | 64 |65 | Crie uma classe chamada "EstoqueProdutos" que utilize um Map para armazenar os produtos, suas quantidades em estoque e seus respectivos preços. Cada produto possui um código como chave e um objeto Produto como valor, contendo nome, quantidade e preço. Implemente os seguintes métodos: 66 | 67 | - `adicionarProduto(long cod, String nome, int quantidade, double preco)`: Adiciona um produto ao estoque, juntamente com a quantidade disponível e o preço. 68 | - `exibirProdutos()`: Exibe todos os produtos, suas quantidades em estoque e preços. 69 | - `calcularValorTotalEstoque()`: Calcula e retorna o valor total do estoque, considerando a quantidade e o preço de cada produto. 70 | - `obterProdutoMaisCaro()`: Retorna o produto mais caro do estoque, ou seja, aquele com o maior preço. 71 | - `obterProdutoMaisBarato()`: Retorna o produto mais barato do estoque, ou seja, aquele com o menor preço. 72 | - `obterProdutoMaiorQuantidadeValorTotalNoEstoque()`: Retorna o produto que está em maior quantidade no estoque, considerando o valor total de cada produto (quantidade * preço). 73 |
74 | 75 | ### 2. Contagem de Palavras 76 | 77 |78 | Crie uma classe chamada "ContagemPalavras" que utilize um Map para armazenar as palavras e a quantidade de vezes que cada palavra aparece em um texto. Implemente os seguintes métodos: 79 | 80 | - `adicionarPalavra(String palavra, Integer contagem)`: Adiciona uma palavra à contagem. 81 | - `removerPalavra(String palavra)`: Remove uma palavra da contagem, se estiver presente. 82 | - `exibirContagemPalavras()`: Exibe todas as palavras e suas respectivas contagens. 83 | - `encontrarPalavraMaisFrequente()`: Encontra a palavra mais frequente no texto e retorna a palavra e sua contagem. 84 |
85 | 86 | --- 87 | 88 | ## Ordenação nos Map 89 | 90 | ### 1. Agenda de Eventos 91 | 92 |93 | Crie uma classe chamada "AgendaEventos" que utilize um `Map` para armazenar as datas e seus respectivos Eventos. Cada evento é representado por um objeto da classe "Evento", que possui atributos como nome do evento e o nome da atração. Implemente os seguintes métodos: 94 | 95 | - `adicionarEvento(LocalDate data, String nome, String atracao)`: Adiciona um evento à agenda. 96 | - `exibirAgenda()`: Exibe a agenda de eventos em ordem crescente de data. 97 | - `obterProximoEvento()`: Retorna o próximo evento que ocorrerá. 98 |
99 | 100 | ### 2. Livraria Online 101 | 102 |103 | Crie uma classe chamada "LivrariaOnline" que representa uma livraria online. Essa classe utiliza um Map para armazenar os livros disponíveis na livraria, utilizando o link da obra na Amazon Marketplace como chave e um objeto da classe "Livro" como valor. A classe "Livro" possui atributos como título, autor e preço. Através da classe "LivrariaOnline", implemente os seguintes métodos: 104 | 105 | - `adicionarLivro(String link, String titulo, String autor, private double preco)`: Adiciona um livro à livraria, utilizando o ISBN como chave no Map. 106 | - `removerLivro(String titulo)`: Remove um livro da livraria, dado o titulo do livro. 107 | - `exibirLivrosOrdenadosPorPreco()`: Exibe os livros da livraria em ordem crescente de preço. 108 | - `pesquisarLivrosPorAutor(String autor)`: Retorna uma lista de todos os livros escritos por um determinado autor. 109 | - `obterLivroMaisCaro()`: Retorna o livro mais caro disponível na livraria. 110 | - `exibirLivroMaisBarato()`: Retorna o livro mais barato disponível na livraria. 111 |
112 | 113 | --- 114 | 115 | ### Dúvidas e Suporte 116 | 117 | Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (: -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoConvidados.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoConvidados.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoPalavrasUnicas.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoPalavrasUnicas.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/Convidado.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/Convidado.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Ordenacao/Aluno.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Ordenacao/Aluno.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorNota.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorNota.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Ordenacao/GerenciadorAlunos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Ordenacao/GerenciadorAlunos.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Pesquisa/ListaTarefas.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Pesquisa/ListaTarefas.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/Pesquisa/Tarefa.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cami-la/collections-java-api-2023/1dd708ae5036156a4109fa0d96f9e9bb33033a12/out/production/collections-java-api-2023/main/java/set/Pesquisa/Tarefa.class -------------------------------------------------------------------------------- /out/production/collections-java-api-2023/main/java/set/README.md: -------------------------------------------------------------------------------- 1 | # SET 2 | 3 |
4 |
5 | Hierarchy of Collection Framework in Java
6 |
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: 39 | 40 | - `adicionarConvidado(String nome, int codigoConvite)`: Adiciona um convidado ao conjunto. 41 | - `removerConvidadoPorCodigoConvite(int codigoConvite)`: Remove um convidado do conjunto com base no código do convite. 42 | - `contarConvidados()`: Conta o número total de convidados no Set. 43 | - `exibirConvidados()`: Exibe todos os convidados do conjunto. 44 |
45 | 46 | ### 2. Conjunto de Palavras Únicas 47 | 48 |49 | Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palavras únicas como atributo. Implemente os seguintes métodos: 50 | 51 | - `adicionarPalavra(String palavra)`: Adiciona uma palavra ao conjunto. 52 | - `removerPalavra(String palavra)`: Remove uma palavra do conjunto. 53 | - `verificarPalavra(String palavra)`: Verifica se uma palavra está presente no conjunto. 54 | - `exibirPalavrasUnicas()`: Exibe todas as palavras únicas do conjunto. 55 |
56 | 57 | ---- 58 | 59 | ## Pesquisa em Set 60 | 61 | ### 1. Agenda de Contatos 62 | 63 |64 | 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: 65 | 66 | - `adicionarContato(String nome, int numero)`: Adiciona um contato à agenda. 67 | - `exibirContatos()`: Exibe todos os contatos da agenda. 68 | - `pesquisarPorNome(String nome)`: Pesquisa contatos pelo nome e retorna uma conjunto com os contatos encontrados. 69 | - `atualizarNumeroContato(String nome, int novoNumero)`: Atualiza o número de telefone de um contato específico. 70 |
71 | 72 | ### 2. Lista de Tarefas 73 | 74 |75 | 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: 76 | 77 | - `adicionarTarefa(String descricao)`: Adiciona uma nova tarefa ao Set. 78 | - `removerTarefa(String descricao)`: Remove uma tarefa do Set de acordo com a descrição, se estiver presente. 79 | - `exibirTarefas()`: Exibe todas as tarefas da lista de tarefas. 80 | - `contarTarefas()`: Conta o número total de tarefas na lista de tarefas. 81 | - `obterTarefasConcluidas()`: Retorna um Set com as tarefas concluídas. 82 | - `obterTarefasPendentes()`: Retorna um Set com as tarefas pendentes. 83 | - `marcarTarefaConcluida(String descricao)`: Marca uma tarefa como concluída de acordo com a descrição. 84 | - `marcarTarefaPendente(String descricao)`: Marca uma tarefa como pendente de acordo com a descrição. 85 | - `limparListaTarefas()`: Remove todas as tarefas da lista de tarefas. 86 |
87 | 88 | --- 89 | 90 | ## Ordenação em Set 91 | 92 | ### 1. Cadastro de Produtos 93 | 94 |95 | 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: 96 | 97 | - `adicionarProduto(long cod, String nome, double preco, int quantidade)`: Adiciona um produto ao cadastro. 98 | - `exibirProdutosPorNome()`: Exibe todos os produtos do cadastro em ordem alfabética pelo nome. 99 | - `exibirProdutosPorPreco()`: Exibe todos os produtos do cadastro em ordem crescente de preço. 100 |
101 | 102 | ### 2. Lista de Alunos 103 | 104 |105 | 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: 106 | 107 | - `adicionarAluno(String nome, Long matricula, double media)`: Adiciona um aluno ao conjunto. 108 | - `removerAluno(long matricula)`: Remove um aluno ao conjunto a partir da matricula, se estiver presente. 109 | - `exibirAlunosPorNome()`: Exibe todos os alunos do conjunto em ordem alfabética pelo nome. 110 | - `exibirAlunosPorNota()`: Exibe todos os alunos do conjunto em ordem crescente de nota. 111 | - `exibirAlunos()`: Exibe todos os alunos do conjunto. 112 |
113 | 114 | --- 115 | ### Dúvidas e Suporte 116 | 117 | Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (: 118 | -------------------------------------------------------------------------------- /src/main/java/comparableXcomparator/Livro.java: -------------------------------------------------------------------------------- 1 | package main.java.comparableXcomparator; 2 | 3 | import java.util.Comparator; 4 | 5 | // Uma classe 'Livro' que implementa Comparable 6 | class Livro implements Comparable
4 |
5 | Hierarchy of Collection Framework in Java
6 |
List
é uma coleção ordenada que permite a inclusão de elementos duplicados.
9 | - É um dos tipos de coleção mais utilizados em Java, e as classes de implementação comuns são ArrayList
e LinkedList
.
10 | - A List
se assemelha a uma matriz com comprimento dinâmico, permitindo adicionar ou remover elementos.
11 | - A interface List
fornece métodos úteis para adicionar elementos em posições específicas, remover ou substituir elementos com base no índice e obter sublistas usando índices.
12 | - A classe Collections
fornece algoritmos úteis para manipulação de List
, como ordenação (sort), embaralhamento (shuffle), reversão (reverse) e busca binária (binarySearch).
13 |
14 | > ##### *ArrayList*: O ArrayList é uma implementação da interface List que armazena os elementos em uma estrutura de array redimensionável. Isso significa que ele pode crescer automaticamente à medida que novos elementos são adicionados. A principal vantagem do ArrayList é o acesso rápido aos elementos por meio de índices, o que permite recuperar um elemento específico de forma eficiente. No entanto, adicionar ou remover elementos no meio da lista pode ser mais lento, pois requer a realocação de elementos.
15 |
16 | > ##### *LinkedList*: O LinkedList é uma implementação da interface List que armazena os elementos em uma lista duplamente vinculada. Cada elemento contém referências para o elemento anterior e próximo na lista. A principal vantagem do LinkedList é a eficiência na adição ou remoção de elementos no início ou no final da lista, pois não é necessário realocar elementos. No entanto, o acesso aos elementos por meio de índices é mais lento, pois requer percorrer a lista até o elemento desejado.
17 |
18 | > ##### *Vector*: O Vector é uma implementação antiga da interface List que é semelhante ao ArrayList, mas é sincronizada, ou seja, é thread-safe. Isso significa que várias threads podem manipular um objeto Vector ao mesmo tempo sem causar problemas de concorrência. No entanto, essa sincronização adiciona uma sobrecarga de desempenho, tornando o Vector menos eficiente do que o ArrayList em cenários em que a concorrência não é um problema. Por esse motivo, o uso do Vector é menos comum em aplicações modernas.
19 |
20 | ### Referências:
21 |
22 | [1] "Collections in Java Tutorial." DigitalOcean Community. Disponível em: https://www.digitalocean.com/community/tutorials/collections-in-java-tutorial.
23 |
24 | [2] "Java™ Platform, Standard Edition 17 API Specification - Class List." Oracle. Disponível em: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html.
25 |
26 | # Fixando os Conhecimentos
27 |
28 | Exercícios:
29 |
30 | 1. Operações Básicas com List
31 | 2. Pesquisa em List
32 | 3. Ordenação nas List
33 |
34 | ## Operações Básicas com List
35 |
36 | ### 1. Lista de Tarefas
37 | Crie uma classe chamada "ListaTarefas" que possui uma lista de tarefas como atributo. Cada tarefa é representada por uma classe chamada "Tarefa" que possui um atributo de descrição. Implemente os seguintes métodos: 38 | 39 | - `adicionarTarefa(String descricao)`: Adiciona uma nova tarefa à lista com a descrição fornecida. 40 | - `removerTarefa(String descricao)`: Remove uma tarefa da lista com base em sua descrição. 41 | - `obterNumeroTotalTarefas()`: Retorna o número total de tarefas na lista. 42 | - `obterDescricoesTarefas()`: Retorna uma lista contendo a descrição de todas as tarefas na lista. 43 |
44 | 45 | ### 2. Carrinho de Compras: 46 | 47 |Crie uma classe chamada "CarrinhoDeCompras" que representa um carrinho de compras online. O carrinho deve ser implementado como uma lista de itens. Cada item é representado por uma classe chamada "Item" que possui atributos como nome, preço e quantidade. Implemente os seguintes métodos: 48 | 49 | - `adicionarItem(String nome, double preco, int quantidade)`: Adiciona um item ao carrinho com o nome, preço e quantidade especificados. 50 | - `removerItem(String nome)`: Remove um item do carrinho com base no seu nome. 51 | - `calcularValorTotal()`: Calcula e retorna o valor total do carrinho, levando em consideração o preço e a quantidade de cada item. 52 | - `exibirItens()`: Exibe todos os itens presentes no carrinho, mostrando seus nomes, preços e quantidades. 53 |
54 | 55 | ---- 56 | 57 | ## Pesquisa em List 58 | 59 | ### 1. Catálogo de Livros 60 | 61 |Crie uma classe chamada "CatalogoLivros" que possui uma lista de objetos do tipo "Livro" como atributo. Cada livro possui atributos como título, autor e ano de publicação. Implemente os seguintes métodos: 62 | 63 | - `adicionarLivro(String titulo, String autor, int anoPublicacao)`: Adiciona um livro ao catálogo. 64 | - `pesquisarPorAutor(String autor)`: Pesquisa livros por autor e retorna uma lista com os livros encontrados. 65 | - `pesquisarPorIntervaloAnos(int anoInicial, int anoFinal)`: Pesquisa livros publicados em um determinado intervalo de anos e retorna uma lista com os livros encontrados. 66 | - `pesquisarPorTitulo(String titulo)`: Pesquisa livros por título e retorna o primeiro livro encontrado. 67 |
68 | 69 | ### 2. Soma de Números 70 | 71 |Crie uma classe chamada "SomaNumeros" que possui uma lista de números inteiros como atributo. Implemente os seguintes métodos: 72 | 73 | - `adicionarNumero(int numero)`: Adiciona um número à lista de números. 74 | - `calcularSoma()`: Calcula a soma de todos os números na lista e retorna o resultado. 75 | - `encontrarMaiorNumero()`: Encontra o maior número na lista e retorna o valor. 76 | - `encontrarMenorNumero()`: Encontra o menor número na lista e retorna o valor. 77 | - `exibirNumeros()`: Retorna uma lista contendo todos os números presentes na lista. 78 | 79 | ------- 80 | 81 | ## Ordenação em List 82 | 83 | ### 1. Ordenação de Pessoas 84 | 85 |
Crie uma classe chamada "OrdenacaoPessoas" que possui uma lista de objetos do tipo "Pessoa" como atributo. Cada pessoa possui atributos como nome, idade e altura. Implemente os seguintes métodos: 86 | 87 | - `adicionarPessoa(String nome, int idade, double altura)`: Adiciona uma pessoa à lista. 88 | - `ordenarPorIdade()`: Ordena as pessoas da lista por idade usando a interface Comparable. 89 | - `ordenarPorAltura()`: Ordena as pessoas da lista por altura usando um Comparator personalizado. 90 |
91 | 92 | ### 2. Ordenação de Números 93 | 94 |Crie uma classe chamada "OrdenacaoNumeros" que possui uma lista de números inteiros como atributo. Implemente os seguintes métodos: 95 | 96 | - `adicionarNumero(int numero)`: Adiciona um número à lista. 97 | - `ordenarAscendente()`: Ordena os números da lista em ordem ascendente usando a interface Comparable e a class Collections. 98 | - `ordenarDescendente()`: Ordena os números da lista em ordem descendente usando um Comparable e a class Collections. 99 |
100 | 101 | --- 102 | ### Dúvidas e Suporte 103 | 104 | Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (: 105 | -------------------------------------------------------------------------------- /src/main/java/map/OperacoesBasicas/AgendaContatos.java: -------------------------------------------------------------------------------- 1 | package main.java.map.OperacoesBasicas; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class AgendaContatos { 7 | //atributo 8 | private Map
4 |
5 | Hierarchy of Collection Framework in Java
6 |
39 | Crie uma classe chamada "AgendaContatos" que utilize um Map para armazenar os contatos. Cada contato possui um nome como chave e um número de telefone como valor. Implemente os seguintes métodos: 40 | 41 | - `adicionarContato(String nome, Integer telefone)`: Adiciona um contato à agenda, associando o nome do contato ao número de telefone correspondente. 42 | - `removerContato(String nome)`: Remove um contato da agenda, dado o nome do contato. 43 | - `exibirContatos()`: Exibe todos os contatos da agenda, mostrando o nome e o número de telefone de cada contato. 44 | - `pesquisarPorNome(String nome)`: Pesquisa um contato pelo nome e retorna o número de telefone correspondente. 45 |
46 | 47 | ### 2. Dicionário 48 | 49 |50 | Crie uma classe chamada "Dicionario" que utilize um Map para armazenar palavras e suas respectivas definições. Implemente os seguintes métodos: 51 | 52 | - `adicionarPalavra(String palavra, String definicao)`: Adiciona uma palavra e sua definição ao dicionário, associando a palavra à sua definição correspondente. 53 | - `removerPalavra(String palavra)`: Remove uma palavra do dicionário, dado o termo a ser removido. 54 | - `exibirPalavras()`: Exibe todas as palavras e suas definições do dicionário, mostrando cada palavra seguida de sua respectiva definição. 55 | - `pesquisarPorPalavra(String palavra)`: Pesquisa uma palavra no dicionário e retorna sua definição correspondente. 56 |
57 | 58 | --- 59 | 60 | ## Pesquisa em Map 61 | 62 | ### 1. Estoque de Produtos com Preço 63 | 64 |65 | Crie uma classe chamada "EstoqueProdutos" que utilize um Map para armazenar os produtos, suas quantidades em estoque e seus respectivos preços. Cada produto possui um código como chave e um objeto Produto como valor, contendo nome, quantidade e preço. Implemente os seguintes métodos: 66 | 67 | - `adicionarProduto(long cod, String nome, int quantidade, double preco)`: Adiciona um produto ao estoque, juntamente com a quantidade disponível e o preço. 68 | - `exibirProdutos()`: Exibe todos os produtos, suas quantidades em estoque e preços. 69 | - `calcularValorTotalEstoque()`: Calcula e retorna o valor total do estoque, considerando a quantidade e o preço de cada produto. 70 | - `obterProdutoMaisCaro()`: Retorna o produto mais caro do estoque, ou seja, aquele com o maior preço. 71 | - `obterProdutoMaisBarato()`: Retorna o produto mais barato do estoque, ou seja, aquele com o menor preço. 72 | - `obterProdutoMaiorQuantidadeValorTotalNoEstoque()`: Retorna o produto que está em maior quantidade no estoque, considerando o valor total de cada produto (quantidade * preço). 73 |
74 | 75 | ### 2. Contagem de Palavras 76 | 77 |78 | Crie uma classe chamada "ContagemPalavras" que utilize um Map para armazenar as palavras e a quantidade de vezes que cada palavra aparece em um texto. Implemente os seguintes métodos: 79 | 80 | - `adicionarPalavra(String palavra, Integer contagem)`: Adiciona uma palavra à contagem. 81 | - `removerPalavra(String palavra)`: Remove uma palavra da contagem, se estiver presente. 82 | - `exibirContagemPalavras()`: Exibe todas as palavras e suas respectivas contagens. 83 | - `encontrarPalavraMaisFrequente()`: Encontra a palavra mais frequente no texto e retorna a palavra e sua contagem. 84 |
85 | 86 | --- 87 | 88 | ## Ordenação nos Map 89 | 90 | ### 1. Agenda de Eventos 91 | 92 |93 | Crie uma classe chamada "AgendaEventos" que utilize um `Map` para armazenar as datas e seus respectivos Eventos. Cada evento é representado por um objeto da classe "Evento", que possui atributos como nome do evento e o nome da atração. Implemente os seguintes métodos: 94 | 95 | - `adicionarEvento(LocalDate data, String nome, String atracao)`: Adiciona um evento à agenda. 96 | - `exibirAgenda()`: Exibe a agenda de eventos em ordem crescente de data. 97 | - `obterProximoEvento()`: Retorna o próximo evento que ocorrerá. 98 |
99 | 100 | ### 2. Livraria Online 101 | 102 |103 | Crie uma classe chamada "LivrariaOnline" que representa uma livraria online. Essa classe utiliza um Map para armazenar os livros disponíveis na livraria, utilizando o link da obra na Amazon Marketplace como chave e um objeto da classe "Livro" como valor. A classe "Livro" possui atributos como título, autor e preço. Através da classe "LivrariaOnline", implemente os seguintes métodos: 104 | 105 | - `adicionarLivro(String link, String titulo, String autor, private double preco)`: Adiciona um livro à livraria, utilizando o ISBN como chave no Map. 106 | - `removerLivro(String titulo)`: Remove um livro da livraria, dado o titulo do livro. 107 | - `exibirLivrosOrdenadosPorPreco()`: Exibe os livros da livraria em ordem crescente de preço. 108 | - `pesquisarLivrosPorAutor(String autor)`: Retorna uma lista de todos os livros escritos por um determinado autor. 109 | - `obterLivroMaisCaro()`: Retorna o livro mais caro disponível na livraria. 110 | - `exibirLivroMaisBarato()`: Retorna o livro mais barato disponível na livraria. 111 |
112 | 113 | --- 114 | 115 | ### Dúvidas e Suporte 116 | 117 | Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (: -------------------------------------------------------------------------------- /src/main/java/set/OperacoesBasicas/ConjuntoConvidados.java: -------------------------------------------------------------------------------- 1 | package main.java.set.OperacoesBasicas; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | 6 | public class ConjuntoConvidados { 7 | //atributo 8 | private Set
4 |
5 | Hierarchy of Collection Framework in Java
6 |
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: 39 | 40 | - `adicionarConvidado(String nome, int codigoConvite)`: Adiciona um convidado ao conjunto. 41 | - `removerConvidadoPorCodigoConvite(int codigoConvite)`: Remove um convidado do conjunto com base no código do convite. 42 | - `contarConvidados()`: Conta o número total de convidados no Set. 43 | - `exibirConvidados()`: Exibe todos os convidados do conjunto. 44 |
45 | 46 | ### 2. Conjunto de Palavras Únicas 47 | 48 |49 | Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palavras únicas como atributo. Implemente os seguintes métodos: 50 | 51 | - `adicionarPalavra(String palavra)`: Adiciona uma palavra ao conjunto. 52 | - `removerPalavra(String palavra)`: Remove uma palavra do conjunto. 53 | - `verificarPalavra(String palavra)`: Verifica se uma palavra está presente no conjunto. 54 | - `exibirPalavrasUnicas()`: Exibe todas as palavras únicas do conjunto. 55 |
56 | 57 | ---- 58 | 59 | ## Pesquisa em Set 60 | 61 | ### 1. Agenda de Contatos 62 | 63 |64 | 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: 65 | 66 | - `adicionarContato(String nome, int numero)`: Adiciona um contato à agenda. 67 | - `exibirContatos()`: Exibe todos os contatos da agenda. 68 | - `pesquisarPorNome(String nome)`: Pesquisa contatos pelo nome e retorna uma conjunto com os contatos encontrados. 69 | - `atualizarNumeroContato(String nome, int novoNumero)`: Atualiza o número de telefone de um contato específico. 70 |
71 | 72 | ### 2. Lista de Tarefas 73 | 74 |75 | 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: 76 | 77 | - `adicionarTarefa(String descricao)`: Adiciona uma nova tarefa ao Set. 78 | - `removerTarefa(String descricao)`: Remove uma tarefa do Set de acordo com a descrição, se estiver presente. 79 | - `exibirTarefas()`: Exibe todas as tarefas da lista de tarefas. 80 | - `contarTarefas()`: Conta o número total de tarefas na lista de tarefas. 81 | - `obterTarefasConcluidas()`: Retorna um Set com as tarefas concluídas. 82 | - `obterTarefasPendentes()`: Retorna um Set com as tarefas pendentes. 83 | - `marcarTarefaConcluida(String descricao)`: Marca uma tarefa como concluída de acordo com a descrição. 84 | - `marcarTarefaPendente(String descricao)`: Marca uma tarefa como pendente de acordo com a descrição. 85 | - `limparListaTarefas()`: Remove todas as tarefas da lista de tarefas. 86 |
87 | 88 | --- 89 | 90 | ## Ordenação em Set 91 | 92 | ### 1. Cadastro de Produtos 93 | 94 |95 | 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: 96 | 97 | - `adicionarProduto(long cod, String nome, double preco, int quantidade)`: Adiciona um produto ao cadastro. 98 | - `exibirProdutosPorNome()`: Exibe todos os produtos do cadastro em ordem alfabética pelo nome. 99 | - `exibirProdutosPorPreco()`: Exibe todos os produtos do cadastro em ordem crescente de preço. 100 |
101 | 102 | ### 2. Lista de Alunos 103 | 104 |105 | 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: 106 | 107 | - `adicionarAluno(String nome, Long matricula, double media)`: Adiciona um aluno ao conjunto. 108 | - `removerAluno(long matricula)`: Remove um aluno ao conjunto a partir da matricula, se estiver presente. 109 | - `exibirAlunosPorNome()`: Exibe todos os alunos do conjunto em ordem alfabética pelo nome. 110 | - `exibirAlunosPorNota()`: Exibe todos os alunos do conjunto em ordem crescente de nota. 111 | - `exibirAlunos()`: Exibe todos os alunos do conjunto. 112 |
113 | 114 | --- 115 | ### Dúvidas e Suporte 116 | 117 | Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (: 118 | --------------------------------------------------------------------------------