diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..919ce1f --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/out/production/collections-java-api-2023/main/java/Main.class b/out/production/collections-java-api-2023/main/java/Main.class deleted file mode 100644 index ab956d8..0000000 Binary files a/out/production/collections-java-api-2023/main/java/Main.class and /dev/null differ diff --git a/out/production/collections-java-api-2023/main/java/list/OperacoesBasicas/ListaTarefa1.class b/out/production/collections-java-api-2023/main/java/list/OperacoesBasicas/ListaTarefa1.class new file mode 100644 index 0000000..77c077a Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/OperacoesBasicas/ListaTarefa1.class differ diff --git a/out/production/collections-java-api-2023/main/java/list/OperacoesBasicas/Tarefa1.class b/out/production/collections-java-api-2023/main/java/list/OperacoesBasicas/Tarefa1.class new file mode 100644 index 0000000..56cdeb5 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/OperacoesBasicas/Tarefa1.class differ diff --git a/out/production/collections-java-api-2023/main/java/list/Ordenacao/ComparatorForAltura.class b/out/production/collections-java-api-2023/main/java/list/Ordenacao/ComparatorForAltura.class new file mode 100644 index 0000000..8b1e9b7 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/Ordenacao/ComparatorForAltura.class differ diff --git a/out/production/collections-java-api-2023/main/java/list/Ordenacao/OrdenacaoPessoass.class b/out/production/collections-java-api-2023/main/java/list/Ordenacao/OrdenacaoPessoass.class new file mode 100644 index 0000000..13eae95 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/Ordenacao/OrdenacaoPessoass.class differ diff --git a/out/production/collections-java-api-2023/main/java/list/Ordenacao/Pessoaa.class b/out/production/collections-java-api-2023/main/java/list/Ordenacao/Pessoaa.class new file mode 100644 index 0000000..b1124c9 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/Ordenacao/Pessoaa.class differ diff --git a/out/production/collections-java-api-2023/main/java/list/Pesquisa/CatalogoLivross.class b/out/production/collections-java-api-2023/main/java/list/Pesquisa/CatalogoLivross.class new file mode 100644 index 0000000..a074dcb Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/Pesquisa/CatalogoLivross.class differ diff --git a/out/production/collections-java-api-2023/main/java/list/Pesquisa/Livroo.class b/out/production/collections-java-api-2023/main/java/list/Pesquisa/Livroo.class new file mode 100644 index 0000000..f9e3e02 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/list/Pesquisa/Livroo.class differ diff --git a/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/AgendaContatos.class b/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/AgendaContatos.class index dbc9552..91efca6 100644 Binary files a/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/AgendaContatos.class and b/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/AgendaContatos.class differ diff --git a/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/GabaritoAgendaContatos.class b/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/GabaritoAgendaContatos.class new file mode 100644 index 0000000..822c739 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/GabaritoAgendaContatos.class differ diff --git a/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/Dicionario.class b/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/GabaritoDicionario.class similarity index 75% rename from out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/Dicionario.class rename to out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/GabaritoDicionario.class index a53857a..2136081 100644 Binary files a/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/Dicionario.class and b/out/production/collections-java-api-2023/main/java/map/OperacoesBasicas/GabaritoDicionario.class differ diff --git a/out/production/collections-java-api-2023/main/java/map/Pesquisa/EstoqueProdutos.class b/out/production/collections-java-api-2023/main/java/map/Pesquisa/EstoqueProdutos.class index 0beacf2..0f9e499 100644 Binary files a/out/production/collections-java-api-2023/main/java/map/Pesquisa/EstoqueProdutos.class and b/out/production/collections-java-api-2023/main/java/map/Pesquisa/EstoqueProdutos.class differ diff --git a/out/production/collections-java-api-2023/main/java/map/Pesquisa/Produto.class b/out/production/collections-java-api-2023/main/java/map/Pesquisa/Produto.class index ca39992..19d6db8 100644 Binary files a/out/production/collections-java-api-2023/main/java/map/Pesquisa/Produto.class and b/out/production/collections-java-api-2023/main/java/map/Pesquisa/Produto.class differ diff --git a/out/production/collections-java-api-2023/main/java/map/README.md b/out/production/collections-java-api-2023/main/java/map/README.md index ca81636..f3b2765 100644 --- a/out/production/collections-java-api-2023/main/java/map/README.md +++ b/out/production/collections-java-api-2023/main/java/map/README.md @@ -36,12 +36,12 @@ Exercícios: ### 1. Agenda de Contatos

-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: +Crie uma classe chamada "AgendaContatos" que utilize um Map para armazenar os contatos. Cada contato1 possui um nome como chave e um número de telefone como valor. Implemente os seguintes métodos: -- `adicionarContato(String nome, Integer telefone)`: Adiciona um contato à agenda, associando o nome do contato ao número de telefone correspondente. -- `removerContato(String nome)`: Remove um contato da agenda, dado o nome do contato. -- `exibirContatos()`: Exibe todos os contatos da agenda, mostrando o nome e o número de telefone de cada contato. -- `pesquisarPorNome(String nome)`: Pesquisa um contato pelo nome e retorna o número de telefone correspondente. +- `adicionarContato(String nome, Integer telefone)`: Adiciona um contato1 à agenda, associando o nome do contato1 ao número de telefone correspondente. +- `removerContato(String nome)`: Remove um contato1 da agenda, dado o nome do contato1. +- `exibirContatos()`: Exibe todos os contatos da agenda, mostrando o nome e o número de telefone de cada contato1. +- `pesquisarPorNome(String nome)`: Pesquisa um contato1 pelo nome e retorna o número de telefone correspondente.

### 2. Dicionário @@ -62,14 +62,14 @@ Crie uma classe chamada "Dicionario" que utilize um Map para armazenar palavras ### 1. Estoque de Produtos com Preço

-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: +Crie uma classe chamada "EstoqueProdutos" que utilize um Map para armazenar os produtos, suas quantidades em estoque e seus respectivos preços. Cada produto1 possui um código como chave e um objeto Produto como valor, contendo nome, quantidade e preço. Implemente os seguintes métodos: -- `adicionarProduto(long cod, String nome, int quantidade, double preco)`: Adiciona um produto ao estoque, juntamente com a quantidade disponível e o preço. +- `adicionarProduto(long cod, String nome, int quantidade, double preco)`: Adiciona um produto1 ao estoque, juntamente com a quantidade disponível e o preço. - `exibirProdutos()`: Exibe todos os produtos, suas quantidades em estoque e preços. -- `calcularValorTotalEstoque()`: Calcula e retorna o valor total do estoque, considerando a quantidade e o preço de cada produto. -- `obterProdutoMaisCaro()`: Retorna o produto mais caro do estoque, ou seja, aquele com o maior preço. -- `obterProdutoMaisBarato()`: Retorna o produto mais barato do estoque, ou seja, aquele com o menor preço. -- `obterProdutoMaiorQuantidadeValorTotalNoEstoque()`: Retorna o produto que está em maior quantidade no estoque, considerando o valor total de cada produto (quantidade * preço). +- `calcularValorTotalEstoque()`: Calcula e retorna o valor total do estoque, considerando a quantidade e o preço de cada produto1. +- `obterProdutoMaisCaro()`: Retorna o produto1 mais caro do estoque, ou seja, aquele com o maior preço. +- `obterProdutoMaisBarato()`: Retorna o produto1 mais barato do estoque, ou seja, aquele com o menor preço. +- `obterProdutoMaiorQuantidadeValorTotalNoEstoque()`: Retorna o produto1 que está em maior quantidade no estoque, considerando o valor total de cada produto1 (quantidade * preço).

### 2. Contagem de Palavras diff --git a/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoConvidadoss.class b/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoConvidadoss.class new file mode 100644 index 0000000..7f50a26 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/ConjuntoConvidadoss.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/Convidados.class b/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/Convidados.class new file mode 100644 index 0000000..a568a7c Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/OperacoesBasicas/Convidados.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos.class b/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos.class index 83316ab..85efec4 100644 Binary files a/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos.class and b/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos1.class b/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos1.class new file mode 100644 index 0000000..7e51917 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/Ordenacao/CadastroProdutos1.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco.class b/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorForPreco.class similarity index 63% rename from out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco.class rename to out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorForPreco.class index 725341f..b912ce0 100644 Binary files a/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco.class and b/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorForPreco.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco1.class b/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco1.class new file mode 100644 index 0000000..b768e15 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/Ordenacao/ComparatorPorPreco1.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto.class b/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto.class index 642c87b..e72b77f 100644 Binary files a/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto.class and b/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto1.class b/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto1.class new file mode 100644 index 0000000..f166d44 Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/Ordenacao/Produto1.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos.class b/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos.class index 6564a0a..4fc4431 100644 Binary files a/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos.class and b/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos1.class b/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos1.class new file mode 100644 index 0000000..d6b866f Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/Pesquisa/AgendaContatos1.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato.class b/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato.class index de97fbe..0ce2036 100644 Binary files a/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato.class and b/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato1.class b/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato1.class new file mode 100644 index 0000000..8b7a1aa Binary files /dev/null and b/out/production/collections-java-api-2023/main/java/set/Pesquisa/Contato1.class differ diff --git a/out/production/collections-java-api-2023/main/java/set/README.md b/out/production/collections-java-api-2023/main/java/set/README.md index a587fba..b00a784 100644 --- a/out/production/collections-java-api-2023/main/java/set/README.md +++ b/out/production/collections-java-api-2023/main/java/set/README.md @@ -61,12 +61,12 @@ Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palav ### 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: +Crie uma classe chamada "AgendaContatos" que possui um conjunto de objetos do tipo "Contato" como atributo. Cada contato1 possui atributos como nome e número de telefone. Implemente os seguintes métodos: -- `adicionarContato(String nome, int numero)`: Adiciona um contato à agenda. +- `adicionarContato(String nome, int numero)`: Adiciona um contato1 à 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. +- `atualizarNumeroContato(String nome, int novoNumero)`: Atualiza o número de telefone de um contato1 específico.

### 2. Lista de Tarefas @@ -92,9 +92,9 @@ Crie uma classe chamada "ListaTarefas" que possui um conjunto de objetos do tipo ### 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: +Crie uma classe chamada "CadastroProdutos" que possui um conjunto de objetos do tipo "Produto" como atributo. Cada produto1 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. +- `adicionarProduto(long cod, String nome, double preco, int quantidade)`: Adiciona um produto1 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.

diff --git a/src/main/java/list/OperacoesBasicas/ListaTarefa1.java b/src/main/java/list/OperacoesBasicas/ListaTarefa1.java new file mode 100644 index 0000000..13179be --- /dev/null +++ b/src/main/java/list/OperacoesBasicas/ListaTarefa1.java @@ -0,0 +1,56 @@ +package main.java.list.OperacoesBasicas; + +import java.util.ArrayList; +import java.util.List; + + +public class ListaTarefa1 { + //sempre que eu criar um objeto do tipo lista de tarefa + //eu vou ter um atributo tarefaList com um ArrayList esperando + private List tarefa1List; + + public ListaTarefa1() { + this.tarefa1List = new ArrayList<>(); + } + //criando método + //1º add tarefa + public void adicionarTarefa(String descricao){ + tarefa1List.add(new Tarefa1(descricao)); + } + + //2ºremover tarefa + public void removerTarefa(String descricao){ + List tarefaForRemove = new ArrayList<>(); + for(Tarefa1 t: tarefa1List){ + if(t.getDescricao().equalsIgnoreCase(descricao)){ + tarefaForRemove.add(t); + } + } + tarefa1List.removeAll(tarefaForRemove); + } + + //3º total de tarefas + public int totalTarefas(){ + return tarefa1List.size(); + } + + + //4º lista de descrições das tarefas + public void obterDescricoes(){ + System.out.println(tarefa1List); + } + + public static void main(String[] args) { + ListaTarefa1 listaTarefa1 = new ListaTarefa1(); + System.out.println("O número total de tarefas é igual a: " + listaTarefa1.totalTarefas()); +// listaTarefa1.adicionarTarefa("Tarefa 1"); +// listaTarefa1.adicionarTarefa("Tarefa 2"); +// listaTarefa1.adicionarTarefa("Tarefa 2"); + System.out.println("O número total de tarefas agora é igual a: " + listaTarefa1.totalTarefas()); + + //listaTarefa1.removerTarefa("taReFa 1"); + System.out.println("O número total de tarefas agora é igual a: " + listaTarefa1.totalTarefas()); + + listaTarefa1.obterDescricoes(); + } +} diff --git a/src/main/java/list/OperacoesBasicas/Tarefa1.java b/src/main/java/list/OperacoesBasicas/Tarefa1.java new file mode 100644 index 0000000..9e574c7 --- /dev/null +++ b/src/main/java/list/OperacoesBasicas/Tarefa1.java @@ -0,0 +1,20 @@ +package main.java.list.OperacoesBasicas; + +public class Tarefa1 { + //atributo + private String descricao; + + public Tarefa1(String descricao) { + this.descricao = descricao; + } + + public String getDescricao(){ + return descricao; + } + + //este método toString(), cria um template para impressão de métodos que us + @Override + public String toString() { + return descricao; + } +} diff --git a/src/main/java/list/Ordenacao/OrdenacaoPessoass.java b/src/main/java/list/Ordenacao/OrdenacaoPessoass.java new file mode 100644 index 0000000..21f87b5 --- /dev/null +++ b/src/main/java/list/Ordenacao/OrdenacaoPessoass.java @@ -0,0 +1,45 @@ +package main.java.list.Ordenacao; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class OrdenacaoPessoass { + //atributo + private List pessoaList; + + public OrdenacaoPessoass() { + this.pessoaList = new ArrayList<>(); + } + + public void adicionarPessoas(String nome, int idade, double altura){ + pessoaList.add(new Pessoaa(nome, idade, altura)); + } + + public List ordenarPorIdade(){ + List pessoaPorIdade = new ArrayList<>(pessoaList); + Collections.sort(pessoaPorIdade); + return pessoaPorIdade; + } + + public List ordenarPorAltura(){ + List pessoaPorAltura = new ArrayList<>(pessoaList); + Collections.sort(pessoaPorAltura, new ComparatorForAltura()); + return pessoaPorAltura; + } + + public static void main(String[] args) { + OrdenacaoPessoass ordenacaopessoass = new OrdenacaoPessoass(); + + ordenacaopessoass.adicionarPessoas("Matheus Marcos", 25, 1.80); + ordenacaopessoass.adicionarPessoas("Joziara Alves", 24, 1.65); + ordenacaopessoass.adicionarPessoas("Mayza Isle", 19, 1.55); + ordenacaopessoass.adicionarPessoas("Rony Silva", 20, 1.75); + ordenacaopessoass.adicionarPessoas("Maria Telma", 51, 1.50); + + System.out.println(ordenacaopessoass.ordenarPorIdade()); + System.out.println(ordenacaopessoass.ordenarPorAltura()); + + } + +} diff --git a/src/main/java/list/Ordenacao/Pessoaa.java b/src/main/java/list/Ordenacao/Pessoaa.java new file mode 100644 index 0000000..a0ba726 --- /dev/null +++ b/src/main/java/list/Ordenacao/Pessoaa.java @@ -0,0 +1,50 @@ +package main.java.list.Ordenacao; + +import java.util.Comparator; + +public class Pessoaa implements Comparable{ + + //por padrão o compareTo usa um "o" após o objeto, mas como estamos nos referindo à Pessoaa, coloquei um p #didática + @Override + public int compareTo(Pessoaa p) { + return Integer.compare(idade, p.getIdade()); + } + + private String nome; + private int idade; + private double altura; + + public Pessoaa(String nome, int idade, double altura) { + this.nome = nome; + this.idade = idade; + this.altura = altura; + } + + public String getNome() { + return nome; + } + + public int getIdade() { + return idade; + } + + public double getAltura() { + return altura; + } + + @Override + public String toString() { + return "Nome = " + nome + '\'' + + ", idade = " + idade + + ", altura = " + altura; + } + +} + +class ComparatorForAltura implements Comparator{ + + @Override + public int compare(Pessoaa p1, Pessoaa p2) { + return Double.compare(p1.getAltura(), p2.getAltura()); + } +} diff --git a/src/main/java/list/Pesquisa/CatalogoLivross.java b/src/main/java/list/Pesquisa/CatalogoLivross.java new file mode 100644 index 0000000..a035a24 --- /dev/null +++ b/src/main/java/list/Pesquisa/CatalogoLivross.java @@ -0,0 +1,78 @@ +package main.java.list.Pesquisa; + +import java.util.ArrayList; +import java.util.List; + +public class CatalogoLivross { + //atributo array + private List livroList; + + //construtor + public CatalogoLivross() { + this.livroList = new ArrayList<>(); + } + //metodo para adicionar livros ao catalogo + public void adicionarLivro(String titulo, + String autor, + int anoPublicacao){ + livroList.add(new Livroo(titulo, autor, + anoPublicacao)); + } + + //metodo para pesquisar livro por autor + public List pesquisaPorAutor(String autor){ + List livrosPorAutor = + new ArrayList<>(); + if(!livroList.isEmpty()) { + for (Livroo l : livroList) { + if (l.getAutor().equalsIgnoreCase(autor)) { + livrosPorAutor.add(l); + } + } + } + return livrosPorAutor; + } + //metodo para pesquisar livro por intervalo + // de ano de publicação + public List pesquisaPorIntervaloAnos (int anoInicio, int anoFim){ + List livrosPorIntervaloAnos = new ArrayList<>(); + if(!livroList.isEmpty()){ + for(Livroo l: livroList){ + if(l.getAnoPublicacao() >= anoInicio && l.getAnoPublicacao() <= anoFim){ + livrosPorIntervaloAnos.add(l); + } + } + } + return livrosPorIntervaloAnos; + } + //metodo para pesquisar e retornar o + // primeiro livro encontrado por titulo + public Livroo pesquisaPorTitulo(String titulo){ + Livroo livrosPorTitulo = null; + if (!livroList.isEmpty()){ + for(Livroo l: livroList){ + if(l.getTitulo().equalsIgnoreCase(titulo)){ + livrosPorTitulo = l; + break; + } + } + } + return livrosPorTitulo; + } + + //metodo main, onde a mágica acontece + public static void main(String[] args) { + CatalogoLivross catalogoLivross = + new CatalogoLivross(); + + catalogoLivross.adicionarLivro("Livro 1", "Autor 1", 2020); + catalogoLivross.adicionarLivro("Livro 1", "Autor 2", 2021); + catalogoLivross.adicionarLivro("Livro 2", "Autor 2", 2022); + catalogoLivross.adicionarLivro("Livro 3", "Autor 3", 2023); + catalogoLivross.adicionarLivro("Livro 4", "Autor 4", 1994); + + System.out.println(catalogoLivross.pesquisaPorAutor("Autor 1")); + System.out.println(catalogoLivross.pesquisaPorIntervaloAnos(2001, 2022)); + System.out.println(catalogoLivross.pesquisaPorTitulo("Livro 2")); + } +} \ No newline at end of file diff --git a/src/main/java/list/Pesquisa/Livroo.java b/src/main/java/list/Pesquisa/Livroo.java new file mode 100644 index 0000000..de33765 --- /dev/null +++ b/src/main/java/list/Pesquisa/Livroo.java @@ -0,0 +1,35 @@ +package main.java.list.Pesquisa; + +public class Livroo { + //atributos + private String titulo; + private String autor; + private int anoPublicacao; + + public Livroo(String titulo, String autor, int anoPublicacao) { + this.titulo = titulo; + this.autor = autor; + this.anoPublicacao = anoPublicacao; + } + + public String getTitulo() { + return titulo; + } + + public String getAutor() { + return autor; + } + + public int getAnoPublicacao() { + return anoPublicacao; + } + + @Override + public String toString() { + return "Livroo{" + + "titulo='" + titulo + '\'' + + ", autor='" + autor + '\'' + + ", anoPublicacao=" + anoPublicacao + + '}'; + } +} diff --git a/src/main/java/map/OperacoesBasicas/AgendaContatos.java b/src/main/java/map/OperacoesBasicas/AgendaContatos.java index a854e35..a5a8af6 100644 --- a/src/main/java/map/OperacoesBasicas/AgendaContatos.java +++ b/src/main/java/map/OperacoesBasicas/AgendaContatos.java @@ -4,70 +4,70 @@ import java.util.Map; public class AgendaContatos { - //atributo - private Map agendaContatoMap; + //atributo + private Map agendaContatosMap; - public AgendaContatos() { - this.agendaContatoMap = new HashMap<>(); - } + //construtor + public AgendaContatos() { + this.agendaContatosMap = new HashMap<>(); + } - public void adicionarContato(String nome, Integer telefone) { - agendaContatoMap.put(nome, telefone); - } + //método adicionarContato + //o método put() serve tanto para adicionar quanto para atualizar + // um elemento, no caso o último objeto passado com + //determinada chave é quam irá persistir + public void adicionarContato(String nome, Integer contato){ + agendaContatosMap.put(nome, contato); + } - public void removerContato(String nome) { - if (!agendaContatoMap.isEmpty()) { - agendaContatoMap.remove(nome); - } else { - System.out.println("A agenda de contatos está vazia."); - } - } + // método removerContato + public void removerContato(String nome){ + if(!agendaContatosMap.isEmpty()){ + agendaContatosMap.remove(nome); + } + } - public void exibirContatos() { - if (!agendaContatoMap.isEmpty()) { - System.out.println(agendaContatoMap); - } else { - System.out.println("A agenda de contatos está vazia."); - } - } + // método exibirContato + public void exibirContato() { + if(!agendaContatosMap.isEmpty()) { + System.out.println(agendaContatosMap); + } + } - public Integer pesquisarPorNome(String nome) { - Integer numeroPorNome = null; - if (!agendaContatoMap.isEmpty()) { - numeroPorNome = agendaContatoMap.get(nome); - if (numeroPorNome == null) { - System.out.println("Contato não encontrado na agenda."); - } - } else { - System.out.println("A agenda de contatos está vazia."); - } - return numeroPorNome; - } + // método PesquisarPorNome + public Integer pesquisaPorNome(String nome){ + Integer contatoPorNome = null; + if (!agendaContatosMap.isEmpty()){ + contatoPorNome = agendaContatosMap.get(nome); + } + return contatoPorNome; + } - public static void main(String[] args) { - AgendaContatos agendaContatos = new AgendaContatos(); + public static void main(String[] args) { + GabaritoAgendaContatos gabaritoAgendaContatos = new GabaritoAgendaContatos(); - // Adicionar contatos - agendaContatos.adicionarContato("Camila", 123456); - agendaContatos.adicionarContato("João", 5665); - agendaContatos.adicionarContato("Carlos", 1111111); - agendaContatos.adicionarContato("Ana", 654987); - agendaContatos.adicionarContato("Maria", 1111111); - agendaContatos.adicionarContato("Camila", 44444); + // Adicionar contatos + gabaritoAgendaContatos.adicionarContato("Camila", 123456); + gabaritoAgendaContatos.adicionarContato("João", 5665); + gabaritoAgendaContatos.adicionarContato("Carlos", 1111111); + gabaritoAgendaContatos.adicionarContato("Ana", 654987); + gabaritoAgendaContatos.adicionarContato("Maria", 1111111); + gabaritoAgendaContatos.adicionarContato("Camila", 44444); - agendaContatos.exibirContatos(); + gabaritoAgendaContatos.exibirContatos(); - // Remover um contato - agendaContatos.removerContato("Maria"); - agendaContatos.exibirContatos(); + // Remover um contato + gabaritoAgendaContatos.removerContato("Maria"); + gabaritoAgendaContatos.exibirContatos(); - // Pesquisar número por nome - String nomePesquisa = "João"; - Integer numeroPesquisa = agendaContatos.pesquisarPorNome("João"); - System.out.println("Número de telefone de " + nomePesquisa + ": " + numeroPesquisa); + // Pesquisar número por nome + String nomePesquisa = "João"; + Integer numeroPesquisa = gabaritoAgendaContatos.pesquisarPorNome(nomePesquisa); + System.out.println("Número de telefone de " + nomePesquisa + ": " + numeroPesquisa); - String nomePesquisaNaoExistente = "Paula"; - Integer numeroPesquisaNaoExistente = agendaContatos.pesquisarPorNome(nomePesquisaNaoExistente); - System.out.println("Número de telefone de " + nomePesquisaNaoExistente + ": " + numeroPesquisaNaoExistente); - } -} \ No newline at end of file + String nomePesquisaNaoExistente = "Paula"; + Integer numeroPesquisaNaoExistente = gabaritoAgendaContatos.pesquisarPorNome(nomePesquisaNaoExistente); + System.out.println("Número de telefone de " + nomePesquisaNaoExistente + ": " + numeroPesquisaNaoExistente); + } + +} diff --git a/src/main/java/map/OperacoesBasicas/GabaritoAgendaContatos.java b/src/main/java/map/OperacoesBasicas/GabaritoAgendaContatos.java new file mode 100644 index 0000000..ea4862a --- /dev/null +++ b/src/main/java/map/OperacoesBasicas/GabaritoAgendaContatos.java @@ -0,0 +1,74 @@ +package main.java.map.OperacoesBasicas; + +import java.util.HashMap; +import java.util.Map; + +public class GabaritoAgendaContatos { + //atributo + private Map agendaContatoMap; + + public GabaritoAgendaContatos() { + this.agendaContatoMap = new HashMap<>(); + } + + public void adicionarContato(String nome, Integer telefone) { + agendaContatoMap.put(nome, telefone); + } + + public void removerContato(String nome) { + if (!agendaContatoMap.isEmpty()) { + agendaContatoMap.remove(nome); + } else { + System.out.println("A agenda de contatos está vazia."); + } + } + + public void exibirContatos() { + if (!agendaContatoMap.isEmpty()) { + System.out.println(agendaContatoMap); + } else { + System.out.println("A agenda de contatos está vazia."); + } + } + + public Integer pesquisarPorNome(String nome) { + Integer numeroPorNome = null; + if (!agendaContatoMap.isEmpty()) { + numeroPorNome = agendaContatoMap.get(nome); + if (numeroPorNome == null) { + System.out.println("Contato1 não encontrado na agenda."); + } + } else { + System.out.println("A agenda de contatos está vazia."); + } + return numeroPorNome; + } + + public static void main(String[] args) { + GabaritoAgendaContatos gabaritoAgendaContatos = new GabaritoAgendaContatos(); + + // Adicionar contatos + gabaritoAgendaContatos.adicionarContato("Camila", 123456); + gabaritoAgendaContatos.adicionarContato("João", 5665); + gabaritoAgendaContatos.adicionarContato("Carlos", 1111111); + gabaritoAgendaContatos.adicionarContato("Ana", 654987); + gabaritoAgendaContatos.adicionarContato("Maria", 1111111); + gabaritoAgendaContatos.adicionarContato("Camila", 44444); + + gabaritoAgendaContatos.exibirContatos(); + + // Remover um contato + gabaritoAgendaContatos.removerContato("Maria"); + gabaritoAgendaContatos.exibirContatos(); + + // Pesquisar número por nome + String nomePesquisa = "João"; + Integer numeroPesquisa = gabaritoAgendaContatos.pesquisarPorNome("João"); + System.out.println("Número de telefone de " + nomePesquisa + ": " + numeroPesquisa); + + String nomePesquisaNaoExistente = "Paula"; + Integer numeroPesquisaNaoExistente = gabaritoAgendaContatos.pesquisarPorNome(nomePesquisaNaoExistente); + System.out.println("Número de telefone de " + nomePesquisaNaoExistente + ": " + numeroPesquisaNaoExistente); + } + +} \ No newline at end of file diff --git a/src/main/java/map/OperacoesBasicas/Dicionario.java b/src/main/java/map/OperacoesBasicas/GabaritoDicionario.java similarity index 61% rename from src/main/java/map/OperacoesBasicas/Dicionario.java rename to src/main/java/map/OperacoesBasicas/GabaritoDicionario.java index 5780cad..d35c407 100644 --- a/src/main/java/map/OperacoesBasicas/Dicionario.java +++ b/src/main/java/map/OperacoesBasicas/GabaritoDicionario.java @@ -3,10 +3,10 @@ import java.util.HashMap; import java.util.Map; -public class Dicionario { +public class GabaritoDicionario { private Map dicionario; - public Dicionario() { + public GabaritoDicionario() { this.dicionario = new HashMap<>(); } @@ -39,25 +39,25 @@ public void exibirPalavras() { } public static void main(String[] args) { - Dicionario dicionario = new Dicionario(); + GabaritoDicionario gabaritoDicionario = new GabaritoDicionario(); // Adicionar palavras (linguagens de programação) - dicionario.adicionarPalavra("java", "Linguagem de programação orientada a objetos."); - dicionario.adicionarPalavra("typescript", "Superset da linguagem JavaScript que adiciona tipagem estática."); - dicionario.adicionarPalavra("kotlin", "Linguagem moderna de programação para a JVM."); + gabaritoDicionario.adicionarPalavra("java", "Linguagem de programação orientada a objetos."); + gabaritoDicionario.adicionarPalavra("typescript", "Superset da linguagem JavaScript que adiciona tipagem estática."); + gabaritoDicionario.adicionarPalavra("kotlin", "Linguagem moderna de programação para a JVM."); // Exibir todas as palavras - dicionario.exibirPalavras(); + gabaritoDicionario.exibirPalavras(); // Pesquisar palavras - String definicaoJava = dicionario.pesquisarPorPalavra("java"); + String definicaoJava = gabaritoDicionario.pesquisarPorPalavra("java"); System.out.println("Definição da linguagem 'java': " + definicaoJava); - String definicaoCSharp = dicionario.pesquisarPorPalavra("csharp"); + String definicaoCSharp = gabaritoDicionario.pesquisarPorPalavra("csharp"); System.out.println(definicaoCSharp); // Remover uma palavra - dicionario.removerPalavra("typescript"); - dicionario.exibirPalavras(); + gabaritoDicionario.removerPalavra("typescript"); + gabaritoDicionario.exibirPalavras(); } } \ No newline at end of file diff --git a/src/main/java/map/Pesquisa/EstoqueProdutos.java b/src/main/java/map/Pesquisa/EstoqueProdutos.java index b8561d4..add9bef 100644 --- a/src/main/java/map/Pesquisa/EstoqueProdutos.java +++ b/src/main/java/map/Pesquisa/EstoqueProdutos.java @@ -87,14 +87,14 @@ public static void main(String[] args) { // Obtém e exibe o produto mais caro Produto produtoMaisCaro = estoque.obterProdutoMaisCaro(); - System.out.println("Produto mais caro: " + produtoMaisCaro); + System.out.println("Produto1 mais caro: " + produtoMaisCaro); // Obtém e exibe o produto mais barato Produto produtoMaisBarato = estoque.obterProdutoMaisBarato(); - System.out.println("Produto mais barato: " + produtoMaisBarato); + System.out.println("Produto1 mais barato: " + produtoMaisBarato); // Obtém e exibe o produto com a maior quantidade em valor no estoque Produto produtoMaiorQuantidadeValorTotal = estoque.obterProdutoMaiorQuantidadeValorTotalNoEstoque(); - System.out.println("Produto com maior quantidade em valor no estoque: " + produtoMaiorQuantidadeValorTotal); + System.out.println("Produto1 com maior quantidade em valor no estoque: " + produtoMaiorQuantidadeValorTotal); } } diff --git a/src/main/java/map/Pesquisa/Produto.java b/src/main/java/map/Pesquisa/Produto.java index ebc2031..f0b1a78 100644 --- a/src/main/java/map/Pesquisa/Produto.java +++ b/src/main/java/map/Pesquisa/Produto.java @@ -26,7 +26,7 @@ public int getQuantidade() { @Override public String toString() { - return "Produto{" + + return "Produto1{" + "nome='" + nome + '\'' + ", preco=" + preco + ", quantidade=" + quantidade + diff --git a/src/main/java/map/README.md b/src/main/java/map/README.md index ca81636..f3b2765 100644 --- a/src/main/java/map/README.md +++ b/src/main/java/map/README.md @@ -36,12 +36,12 @@ Exercícios: ### 1. Agenda de Contatos

-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: +Crie uma classe chamada "AgendaContatos" que utilize um Map para armazenar os contatos. Cada contato1 possui um nome como chave e um número de telefone como valor. Implemente os seguintes métodos: -- `adicionarContato(String nome, Integer telefone)`: Adiciona um contato à agenda, associando o nome do contato ao número de telefone correspondente. -- `removerContato(String nome)`: Remove um contato da agenda, dado o nome do contato. -- `exibirContatos()`: Exibe todos os contatos da agenda, mostrando o nome e o número de telefone de cada contato. -- `pesquisarPorNome(String nome)`: Pesquisa um contato pelo nome e retorna o número de telefone correspondente. +- `adicionarContato(String nome, Integer telefone)`: Adiciona um contato1 à agenda, associando o nome do contato1 ao número de telefone correspondente. +- `removerContato(String nome)`: Remove um contato1 da agenda, dado o nome do contato1. +- `exibirContatos()`: Exibe todos os contatos da agenda, mostrando o nome e o número de telefone de cada contato1. +- `pesquisarPorNome(String nome)`: Pesquisa um contato1 pelo nome e retorna o número de telefone correspondente.

### 2. Dicionário @@ -62,14 +62,14 @@ Crie uma classe chamada "Dicionario" que utilize um Map para armazenar palavras ### 1. Estoque de Produtos com Preço

-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: +Crie uma classe chamada "EstoqueProdutos" que utilize um Map para armazenar os produtos, suas quantidades em estoque e seus respectivos preços. Cada produto1 possui um código como chave e um objeto Produto como valor, contendo nome, quantidade e preço. Implemente os seguintes métodos: -- `adicionarProduto(long cod, String nome, int quantidade, double preco)`: Adiciona um produto ao estoque, juntamente com a quantidade disponível e o preço. +- `adicionarProduto(long cod, String nome, int quantidade, double preco)`: Adiciona um produto1 ao estoque, juntamente com a quantidade disponível e o preço. - `exibirProdutos()`: Exibe todos os produtos, suas quantidades em estoque e preços. -- `calcularValorTotalEstoque()`: Calcula e retorna o valor total do estoque, considerando a quantidade e o preço de cada produto. -- `obterProdutoMaisCaro()`: Retorna o produto mais caro do estoque, ou seja, aquele com o maior preço. -- `obterProdutoMaisBarato()`: Retorna o produto mais barato do estoque, ou seja, aquele com o menor preço. -- `obterProdutoMaiorQuantidadeValorTotalNoEstoque()`: Retorna o produto que está em maior quantidade no estoque, considerando o valor total de cada produto (quantidade * preço). +- `calcularValorTotalEstoque()`: Calcula e retorna o valor total do estoque, considerando a quantidade e o preço de cada produto1. +- `obterProdutoMaisCaro()`: Retorna o produto1 mais caro do estoque, ou seja, aquele com o maior preço. +- `obterProdutoMaisBarato()`: Retorna o produto1 mais barato do estoque, ou seja, aquele com o menor preço. +- `obterProdutoMaiorQuantidadeValorTotalNoEstoque()`: Retorna o produto1 que está em maior quantidade no estoque, considerando o valor total de cada produto1 (quantidade * preço).

### 2. Contagem de Palavras diff --git a/src/main/java/set/OperacoesBasicas/ConjuntoConvidadoss.java b/src/main/java/set/OperacoesBasicas/ConjuntoConvidadoss.java new file mode 100644 index 0000000..56f4231 --- /dev/null +++ b/src/main/java/set/OperacoesBasicas/ConjuntoConvidadoss.java @@ -0,0 +1,53 @@ +package main.java.set.OperacoesBasicas; + +import java.util.HashSet; +import java.util.Set; + +public class ConjuntoConvidadoss { + private Set convidadosSet; + + public ConjuntoConvidadoss() { + this.convidadosSet = new HashSet<>(); + } + + public void adicionarConvidados(String nome, int codeConvit){ + convidadosSet.add(new Convidados(nome, codeConvit)); + } + + public void removerConvidados(int codeConvit){ + Convidados convidadosParaRemover = null; + for(Convidados c: convidadosSet){ + if(c.getCodeConvit() == codeConvit){ + convidadosParaRemover = c; + break; + } + } + convidadosSet.remove(convidadosParaRemover); + } + + public int contarConvidados(){ + return convidadosSet.size(); + } + + public void exibirConvidados(){ + System.out.println(convidadosSet); + } + + public static void main(String[] args) { + ConjuntoConvidadoss conjuntoConvidados = new ConjuntoConvidadoss(); + + System.out.println("Existem " + conjuntoConvidados.contarConvidados() + " convidados para a sua festa!"); + conjuntoConvidados.adicionarConvidados("Matheus Marcos", 1998); + conjuntoConvidados.adicionarConvidados("Joziara Alves", 1999); + conjuntoConvidados.adicionarConvidados("Mayza Isle", 2004); + conjuntoConvidados.adicionarConvidados("Rony Silva", 2004); + conjuntoConvidados.adicionarConvidados("Maria Telma", 1971); + conjuntoConvidados.adicionarConvidados("Samuel Alves", 2016); + conjuntoConvidados.exibirConvidados(); +// System.out.println("Agora existem " + conjuntoConvidados.contarConvidados() + " convidados para a sua festa!"); +// conjuntoConvidados.removerConvidados(2004); +// conjuntoConvidados.removerConvidados(2003); +// System.out.println("Agora existem " + conjuntoConvidados.contarConvidados() + " convidados para a sua festa!"); +// conjuntoConvidados.exibirConvidados(); + } +} diff --git a/src/main/java/set/OperacoesBasicas/Convidados.java b/src/main/java/set/OperacoesBasicas/Convidados.java new file mode 100644 index 0000000..860852b --- /dev/null +++ b/src/main/java/set/OperacoesBasicas/Convidados.java @@ -0,0 +1,44 @@ +package main.java.set.OperacoesBasicas; + +import java.util.Objects; + +public class Convidados { + private String nome; + private int codeConvit; + + public Convidados(String nome, int codeConvit) { + this.nome = nome; + this.codeConvit = codeConvit; + } + + public String getNome() { + return nome; + } + + public int getCodeConvit() { + return codeConvit; + } + + //este método ira comparar os codeConvites para avaliar se algum conflita + //haja vista que essa será a Primary Key deste Objeto + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Convidados that)) + return false; + return getCodeConvit() == that.getCodeConvit(); + } + + @Override + public int hashCode() { + return Objects.hash(getCodeConvit()); + } + + @Override + public String toString() { + return "Convidados{" + + "nome='" + nome + '\'' + + ", codeConvit=" + codeConvit + + '}'; + } +} diff --git a/src/main/java/set/Ordenacao/CadastroProdutos.java b/src/main/java/set/Ordenacao/CadastroProdutos.java index 4dbcf9e..b7e9267 100644 --- a/src/main/java/set/Ordenacao/CadastroProdutos.java +++ b/src/main/java/set/Ordenacao/CadastroProdutos.java @@ -5,53 +5,26 @@ import java.util.TreeSet; public class CadastroProdutos { - //atributo - private Set produtoSet; - - public CadastroProdutos() { - this.produtoSet = new HashSet<>(); - } - - public void adicionarProduto(long cod, String nome, double preco, int quantidade) { - produtoSet.add(new Produto(cod, nome, preco, quantidade)); - } - - public Set exibirProdutosPorNome() { - Set produtosPorNome = new TreeSet<>(produtoSet); - if (!produtoSet.isEmpty()) { - return produtosPorNome; - } else { - throw new RuntimeException("O conjunto está vazio!"); - } - } - - public Set exibirProdutosPorPreco() { - Set produtosPorPreco = new TreeSet<>(new ComparatorPorPreco()); - if (!produtoSet.isEmpty()) { - produtosPorPreco.addAll(produtoSet); - return produtosPorPreco; - } else { - throw new RuntimeException("O conjunto está vazio!"); - } - } - - public static void main(String[] args) { - // Criando uma instância do CadastroProdutos - CadastroProdutos cadastroProdutos = new CadastroProdutos(); - - // Adicionando produtos ao cadastro - cadastroProdutos.adicionarProduto(1L, "Smartphone", 1000d, 10); - cadastroProdutos.adicionarProduto(2L, "Notebook", 1500d, 5); - cadastroProdutos.adicionarProduto(1L, "Mouse", 30d, 20); - cadastroProdutos.adicionarProduto(4L, "Teclado", 50d, 15); - - // Exibindo todos os produtos no cadastro - System.out.println(cadastroProdutos.produtoSet); - - // Exibindo produtos ordenados por nome - System.out.println(cadastroProdutos.exibirProdutosPorNome()); - - // Exibindo produtos ordenados por preço - System.out.println(cadastroProdutos.exibirProdutosPorPreco()); - } + private Set produtosSet; + + public CadastroProdutos() { + this.produtosSet = new HashSet<>(); + } + + public void adicionarProduto(long cod, String nome, double preco, int quantidade) { + produtosSet.add(new Produto(cod, nome, preco, quantidade)); + } + + //Como meu set está ordenado por nome, graças ao CompareTo() + //Uso o TreeSet que aceita o Set Ordenado produtosSet + public Set exibirProdutosPorNome(){ + Set produtosPorNome = new TreeSet<>(produtosSet); + return produtosPorNome; + } + + public Set exibirProdutosPorPreco(){ + Set produtosPorPreco = new TreeSet<>(new ComparatorForPreco()); + produtosPorPreco.addAll(produtosSet); + return produtosPorPreco; + } } diff --git a/src/main/java/set/Ordenacao/CadastroProdutos1.java b/src/main/java/set/Ordenacao/CadastroProdutos1.java new file mode 100644 index 0000000..1c3ba61 --- /dev/null +++ b/src/main/java/set/Ordenacao/CadastroProdutos1.java @@ -0,0 +1,57 @@ +package main.java.set.Ordenacao; + +import java.util.HashSet; +import java.util.Set; +import java.util.TreeSet; + +public class CadastroProdutos1 { + //atributo + private Set produto1Set; + + public CadastroProdutos1() { + this.produto1Set = new HashSet<>(); + } + + public void adicionarProduto(long cod, String nome, double preco, int quantidade) { + produto1Set.add(new Produto1(cod, nome, preco, quantidade)); + } + + public Set exibirProdutosPorNome() { + Set produtosPorNome = new TreeSet<>(produto1Set); + if (!produto1Set.isEmpty()) { + return produtosPorNome; + } else { + throw new RuntimeException("O conjunto está vazio!"); + } + } + + public Set exibirProdutosPorPreco() { + Set produtosPorPreco = new TreeSet<>(new ComparatorPorPreco1()); + if (!produto1Set.isEmpty()) { + produtosPorPreco.addAll(produto1Set); + return produtosPorPreco; + } else { + throw new RuntimeException("O conjunto está vazio!"); + } + } + + public static void main(String[] args) { + // Criando uma instância do CadastroProdutos1 + CadastroProdutos1 cadastroProdutos1 = new CadastroProdutos1(); + + // Adicionando produtos ao cadastro + cadastroProdutos1.adicionarProduto(1L, "Smartphone", 1000d, 10); + cadastroProdutos1.adicionarProduto(2L, "Notebook", 1500d, 5); + cadastroProdutos1.adicionarProduto(1L, "Mouse", 30d, 20); + cadastroProdutos1.adicionarProduto(4L, "Teclado", 50d, 15); + + // Exibindo todos os produtos no cadastro + System.out.println(cadastroProdutos1.produto1Set); + + // Exibindo produtos ordenados por nome + System.out.println(cadastroProdutos1.exibirProdutosPorNome()); + + // Exibindo produtos ordenados por preço + System.out.println(cadastroProdutos1.exibirProdutosPorPreco()); + } +} diff --git a/src/main/java/set/Ordenacao/Produto.java b/src/main/java/set/Ordenacao/Produto.java index d48d34c..cd3cdb6 100644 --- a/src/main/java/set/Ordenacao/Produto.java +++ b/src/main/java/set/Ordenacao/Produto.java @@ -1,77 +1,59 @@ package main.java.set.Ordenacao; import java.util.Comparator; -import java.util.Objects; -public class Produto implements Comparable { - //atributos - private long codigo; - private String nome; - private double preco; - private int quantidade; - - public Produto(long codigo, String nome, double preco, int quantidade) { - this.codigo = codigo; - this.nome = nome; - this.preco = preco; - this.quantidade = quantidade; - } - - @Override - public int compareTo(Produto p) { - return nome.compareToIgnoreCase(p.getNome()); - } - - public long getCodigo() { - return codigo; - } - - public String getNome() { - return nome; - } - - public double getPreco() { - return preco; - } - - public int getQuantidade() { - return quantidade; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof Produto produto)) return false; - return getCodigo() == produto.getCodigo(); - } - - @Override - public int hashCode() { - return Objects.hash(getCodigo()); - } - - @Override - public String toString() { - return "Produto{" + - "codigo=" + codigo + - ", nome='" + nome + '\'' + - ", preco=" + preco + - ", quantidade=" + quantidade + - '}'; - } +public class Produto implements Comparable{ + private long cod; + private String nome; + private double preco; + private int quantidade; + + public Produto(long cod, String nome, double preco, int quantidade) { + this.cod = cod; + this.nome = nome; + this.preco = preco; + this.quantidade = quantidade; + } + + //com o simples fato de adicionarmos este compareTo() + //o código já entende que o Set deve ser comparado pelo nome + @Override + public int compareTo(Produto p) { + return nome.compareToIgnoreCase(p.getNome()); + } + + public void setPreco(double preco){ + this.preco = preco; + } + + public void setQuantidade(int quantidade){ + this.quantidade = quantidade; + } + + public long getCod() { + return cod; + } + + public String getNome() { + return nome; + } + + public double getPreco() { + return preco; + } + + public int getQuantidade() { + return quantidade; + } + + public String toString(){ + return cod + " - " + nome + " - " + preco + " - " + quantidade; + } } -class ComparatorPorPreco implements Comparator { - @Override - public int compare(Produto p1, Produto p2) { - return Double.compare(p1.getPreco(), p2.getPreco()); - } +class ComparatorForPreco implements Comparator{ + @Override + public int compare(Produto p1, Produto p2) { + return Double.compare(p1.getPreco(), p2.getPreco()); + } } - - - - - - - - diff --git a/src/main/java/set/Ordenacao/Produto1.java b/src/main/java/set/Ordenacao/Produto1.java new file mode 100644 index 0000000..3114fba --- /dev/null +++ b/src/main/java/set/Ordenacao/Produto1.java @@ -0,0 +1,77 @@ +package main.java.set.Ordenacao; + +import java.util.Comparator; +import java.util.Objects; + +public class Produto1 implements Comparable { + //atributos + private long codigo; + private String nome; + private double preco; + private int quantidade; + + public Produto1(long codigo, String nome, double preco, int quantidade) { + this.codigo = codigo; + this.nome = nome; + this.preco = preco; + this.quantidade = quantidade; + } + + @Override + public int compareTo(Produto1 p) { + return nome.compareToIgnoreCase(p.getNome()); + } + + public long getCodigo() { + return codigo; + } + + public String getNome() { + return nome; + } + + public double getPreco() { + return preco; + } + + public int getQuantidade() { + return quantidade; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Produto1 produto1)) return false; + return getCodigo() == produto1.getCodigo(); + } + + @Override + public int hashCode() { + return Objects.hash(getCodigo()); + } + + @Override + public String toString() { + return "Produto1{" + + "codigo=" + codigo + + ", nome='" + nome + '\'' + + ", preco=" + preco + + ", quantidade=" + quantidade + + '}'; + } +} + +class ComparatorPorPreco1 implements Comparator { + @Override + public int compare(Produto1 p1, Produto1 p2) { + return Double.compare(p1.getPreco(), p2.getPreco()); + } +} + + + + + + + + diff --git a/src/main/java/set/Pesquisa/AgendaContatos.java b/src/main/java/set/Pesquisa/AgendaContatos.java index 23fc424..0bbb68b 100644 --- a/src/main/java/set/Pesquisa/AgendaContatos.java +++ b/src/main/java/set/Pesquisa/AgendaContatos.java @@ -4,82 +4,44 @@ import java.util.Set; public class AgendaContatos { - //atributo - private Set contatosSet; - - public AgendaContatos() { - this.contatosSet = new HashSet<>(); - } - - public void adicionarContato(String nome, int numero) { - contatosSet.add(new Contato(nome, numero)); - } - - public void exibirContatos() { - if (!contatosSet.isEmpty()) { - System.out.println(contatosSet); - } else { - System.out.println("O conjunto está vazio!"); - } - } - - public Set pesquisarPorNome(String nome) { - Set contatosPorNome = new HashSet<>(); - if (!contatosSet.isEmpty()) { - for (Contato c : contatosSet) { - if (c.getNome().startsWith(nome)) { - contatosPorNome.add(c); - } - } - return contatosPorNome; - } else { - throw new RuntimeException("O conjunto está vazio!"); - } - } - - public Contato atualizarNumeroContato(String nome, int novoNumero) { - Contato contatoAtualizado = null; - if (!contatosSet.isEmpty()) { - for (Contato c : contatosSet) { - if (c.getNome().equalsIgnoreCase(nome)) { - c.setNumero(novoNumero); - contatoAtualizado = c; - break; - } - } - return contatoAtualizado; - } else { - throw new RuntimeException("O conjunto está vazio!"); - } - } - - public static void main(String[] args) { - // Criando uma instância da classe AgendaContatos - AgendaContatos agendaContatos = new AgendaContatos(); - - // Exibindo os contatos no conjunto (deve estar vazio) - agendaContatos.exibirContatos(); - - // Adicionando contatos à agenda - agendaContatos.adicionarContato("João", 123456789); - agendaContatos.adicionarContato("Maria", 987654321); - agendaContatos.adicionarContato("Maria Fernandes", 55555555); - agendaContatos.adicionarContato("Ana", 88889999); - agendaContatos.adicionarContato("Fernando", 77778888); - agendaContatos.adicionarContato("Carolina", 55555555); - - // Exibindo os contatos na agenda - agendaContatos.exibirContatos(); - - // Pesquisando contatos pelo nome - System.out.println(agendaContatos.pesquisarPorNome("Maria")); - - // Atualizando o número de um contato - Contato contatoAtualizado = agendaContatos.atualizarNumeroContato("Carolina", 44443333); - System.out.println("Contato atualizado: " + contatoAtualizado); - - // Exibindo os contatos atualizados na agenda - System.out.println("Contatos na agenda após atualização:"); - agendaContatos.exibirContatos(); - } + private Set contatosSet; + + public AgendaContatos() { + this.contatosSet = new HashSet<>(); + } + + //é essencial lembrar que no add estou instanciando um novo objeto + //e nesse caso como parametro do add informo o new _OBJECT_(p1, p2,...) + public void adicionarContatos(String nome, int numeroTelefone){ + contatosSet.add(new Contato(nome, numeroTelefone)); + } + + public void exibirContatos(){ + System.out.println(contatosSet); + } + + public Set pesquisarPorNome(String nome){ + Set contatosPorNome = new HashSet<>(); + if(!contatosSet.isEmpty()){ + for(Contato c: contatosSet){ + //esse metodo startsWith retorna o q começacom() + if(c.getNome().startsWith(nome)){ + contatosPorNome.add(c); + } + } + } + return contatosPorNome; + } + + public Contato atualizarContato(String nome, int novoNumero){ + Contato contatoAtualizado = null; + for(Contato c:contatosSet){ + if (c.getNome().equalsIgnoreCase(nome)){ + c.setNumeroTelefone(novoNumero); + contatoAtualizado = c; + break; + } + } + return contatoAtualizado; + } } diff --git a/src/main/java/set/Pesquisa/AgendaContatos1.java b/src/main/java/set/Pesquisa/AgendaContatos1.java new file mode 100644 index 0000000..1c0861d --- /dev/null +++ b/src/main/java/set/Pesquisa/AgendaContatos1.java @@ -0,0 +1,85 @@ +package main.java.set.Pesquisa; + +import java.util.HashSet; +import java.util.Set; + +public class AgendaContatos1 { + //atributo + private Set contatosSet; + + public AgendaContatos1() { + this.contatosSet = new HashSet<>(); + } + + public void adicionarContato(String nome, int numero) { + contatosSet.add(new Contato1(nome, numero)); + } + + public void exibirContatos() { + if (!contatosSet.isEmpty()) { + System.out.println(contatosSet); + } else { + System.out.println("O conjunto está vazio!"); + } + } + + public Set pesquisarPorNome(String nome) { + Set contatosPorNome = new HashSet<>(); + if (!contatosSet.isEmpty()) { + for (Contato1 c : contatosSet) { + if (c.getNome().startsWith(nome)) { + contatosPorNome.add(c); + } + } + return contatosPorNome; + } else { + throw new RuntimeException("O conjunto está vazio!"); + } + } + + public Contato1 atualizarNumeroContato(String nome, int novoNumero) { + Contato1 contato1Atualizado = null; + if (!contatosSet.isEmpty()) { + for (Contato1 c : contatosSet) { + if (c.getNome().equalsIgnoreCase(nome)) { + c.setNumero(novoNumero); + contato1Atualizado = c; + break; + } + } + return contato1Atualizado; + } else { + throw new RuntimeException("O conjunto está vazio!"); + } + } + + public static void main(String[] args) { + // Criando uma instância da classe AgendaContatos1 + AgendaContatos1 agendaContatos1 = new AgendaContatos1(); + + // Exibindo os contatos no conjunto (deve estar vazio) + agendaContatos1.exibirContatos(); + + // Adicionando contatos à agenda + agendaContatos1.adicionarContato("João", 123456789); + agendaContatos1.adicionarContato("Maria", 987654321); + agendaContatos1.adicionarContato("Maria Fernandes", 55555555); + agendaContatos1.adicionarContato("Ana", 88889999); + agendaContatos1.adicionarContato("Fernando", 77778888); + agendaContatos1.adicionarContato("Carolina", 55555555); + + // Exibindo os contatos na agenda + agendaContatos1.exibirContatos(); + + // Pesquisando contatos pelo nome + System.out.println(agendaContatos1.pesquisarPorNome("Maria")); + + // Atualizando o número de um contato + Contato1 contato1Atualizado = agendaContatos1.atualizarNumeroContato("Carolina", 44443333); + System.out.println("Contato1 atualizado: " + contato1Atualizado); + + // Exibindo os contatos atualizados na agenda + System.out.println("Contatos na agenda após atualização:"); + agendaContatos1.exibirContatos(); + } +} diff --git a/src/main/java/set/Pesquisa/Contato.java b/src/main/java/set/Pesquisa/Contato.java index 68b86ce..36c2dd1 100644 --- a/src/main/java/set/Pesquisa/Contato.java +++ b/src/main/java/set/Pesquisa/Contato.java @@ -3,41 +3,44 @@ import java.util.Objects; public class Contato { - //atributos - private String nome; - private int numero; - - public Contato(String nome, int numero) { - this.nome = nome; - this.numero = numero; - } - - public String getNome() { - return nome; - } - - public int getNumero() { - return numero; - } - - public void setNumero(int numero) { - this.numero = numero; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof Contato contato)) return false; - return Objects.equals(getNome(), contato.getNome()); - } - - @Override - public int hashCode() { - return Objects.hash(getNome()); - } - - @Override - public String toString() { - return "{" + nome + "," + numero + "}"; - } + //atributos + private String nome; + private int numeroTelefone; + + public Contato(String nome, int numeroTelefone) { + this.nome = nome; + this.numeroTelefone = numeroTelefone; + } + + public void setNumeroTelefone(int numeroTelefone) { + this.numeroTelefone = numeroTelefone; + } + + public String getNome() { + return nome; + } + + public int getNumeroTelefone() { + return numeroTelefone; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Contato contato)) return false; + return getNome().equals(contato.getNome()); + } + + @Override + public int hashCode() { + return Objects.hash(getNome()); + } + + @Override + public String toString() { + return "Contato{" + + "nome='" + nome + '\'' + + ", numeroTelefone='" + numeroTelefone + '\'' + + '}'; + } } diff --git a/src/main/java/set/Pesquisa/Contato1.java b/src/main/java/set/Pesquisa/Contato1.java new file mode 100644 index 0000000..a205523 --- /dev/null +++ b/src/main/java/set/Pesquisa/Contato1.java @@ -0,0 +1,43 @@ +package main.java.set.Pesquisa; + +import java.util.Objects; + +public class Contato1 { + //atributos + private String nome; + private int numero; + + public Contato1(String nome, int numero) { + this.nome = nome; + this.numero = numero; + } + + public String getNome() { + return nome; + } + + public int getNumero() { + return numero; + } + + public void setNumero(int numero) { + this.numero = numero; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Contato1 contato1)) return false; + return Objects.equals(getNome(), contato1.getNome()); + } + + @Override + public int hashCode() { + return Objects.hash(getNome()); + } + + @Override + public String toString() { + return "{" + nome + "," + numero + "}"; + } +} diff --git a/src/main/java/set/README.md b/src/main/java/set/README.md index a587fba..b00a784 100644 --- a/src/main/java/set/README.md +++ b/src/main/java/set/README.md @@ -61,12 +61,12 @@ Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palav ### 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: +Crie uma classe chamada "AgendaContatos" que possui um conjunto de objetos do tipo "Contato" como atributo. Cada contato1 possui atributos como nome e número de telefone. Implemente os seguintes métodos: -- `adicionarContato(String nome, int numero)`: Adiciona um contato à agenda. +- `adicionarContato(String nome, int numero)`: Adiciona um contato1 à 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. +- `atualizarNumeroContato(String nome, int novoNumero)`: Atualiza o número de telefone de um contato1 específico.

### 2. Lista de Tarefas @@ -92,9 +92,9 @@ Crie uma classe chamada "ListaTarefas" que possui um conjunto de objetos do tipo ### 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: +Crie uma classe chamada "CadastroProdutos" que possui um conjunto de objetos do tipo "Produto" como atributo. Cada produto1 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. +- `adicionarProduto(long cod, String nome, double preco, int quantidade)`: Adiciona um produto1 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.