From 009324ae781ce1b83681cb454b39a0b78481f08c Mon Sep 17 00:00:00 2001
From: Blake
Date: Thu, 26 Jun 2025 19:56:58 -0300
Subject: [PATCH 01/11] 1st commit: list, basic operations
---
.../OperacoesBasicas/CarrinhoDeCompras.java | 98 ++++++++-----------
src/main/java/list/OperacoesBasicas/Item.java | 54 +++++-----
.../list/OperacoesBasicas/ListaTarefa.java | 74 --------------
.../java/list/OperacoesBasicas/Tarefa.java | 19 ----
src/main/java/list/OperacoesBasicas/Task.java | 21 ++++
.../java/list/OperacoesBasicas/TaskList.java | 70 +++++++++++++
6 files changed, 163 insertions(+), 173 deletions(-)
delete mode 100644 src/main/java/list/OperacoesBasicas/ListaTarefa.java
delete mode 100644 src/main/java/list/OperacoesBasicas/Tarefa.java
create mode 100644 src/main/java/list/OperacoesBasicas/Task.java
create mode 100644 src/main/java/list/OperacoesBasicas/TaskList.java
diff --git a/src/main/java/list/OperacoesBasicas/CarrinhoDeCompras.java b/src/main/java/list/OperacoesBasicas/CarrinhoDeCompras.java
index 559d781..7c186aa 100644
--- a/src/main/java/list/OperacoesBasicas/CarrinhoDeCompras.java
+++ b/src/main/java/list/OperacoesBasicas/CarrinhoDeCompras.java
@@ -5,79 +5,67 @@
public class CarrinhoDeCompras {
//atributos
- private List- itemList;
+ private List
- itens;
public CarrinhoDeCompras() {
- this.itemList = new ArrayList<>();
+ this.itens = new ArrayList<>();
}
- public void adicionarItem(String nome, double preco, int quantidade) {
- Item item = new Item(nome, preco, quantidade);
- this.itemList.add(item);
+ // métodos
+ public void addItem(String name, double price, int quantity) {
+ itens.add(new Item(name, price, quantity));
}
- public void removerItem(String nome) {
- List
- itensParaRemover = new ArrayList<>();
- if (!itemList.isEmpty()) {
- for (Item i : itemList) {
- if (i.getNome().equalsIgnoreCase(nome)) {
- itensParaRemover.add(i);
- }
+ // não se usa .remove() porque não é possível remover um item específico de uma lista de objetos com for
+ public void removeItem(String name){
+ List
- itensToRemove = new ArrayList<>();
+ if (!itens.isEmpty()){
+ for (Item i : itens) { // percorre a lista de itens
+ if (i.getName().equalsIgnoreCase(name)) {
+ itensToRemove.add(i); // adiona o item à lista de itens a serem removidos
}
- itemList.removeAll(itensParaRemover);
- } else {
- System.out.println("A lista está vazia!");
}
+ itens.removeAll(itensToRemove);
+ }
+ else {
+ System.out.println("Carrinho vazio, não é possível remover itens.");
+ }
}
- public double calcularValorTotal() {
- double valorTotal = 0d;
- if (!itemList.isEmpty()) {
- for (Item item : itemList) {
- double valorItem = item.getPreco() * item.getQuant();
- valorTotal += valorItem; //valorTotal = valorTotal + valorItem;
- }
- return valorTotal;
- } else {
- throw new RuntimeException("A lista está vazia!");
+ public double getTotalPrice() {
+ double total = 0.0;
+ if (!itens.isEmpty()){
+ for (Item i : itens) {
+ total += i.getPrice() * i.getQuantity();
}
+ return total;
}
-
- public void exibirItens() {
- if (!itemList.isEmpty()) {
- System.out.println(this.itemList);
- } else {
- System.out.println("A lista está vazia!");
+ else {
+ System.out.println("Carrinho vazio, não é possível calcular o total.");
+ return total;
}
}
-
- @Override
- public String toString() {
- return "CarrinhoDeCompras{" +
- "itens=" + itemList +
- '}';
+ public void getItemDescriptions() {
+ System.out.println(itens);
}
public static void main(String[] args) {
- // Criando uma instância do carrinho de compras
- CarrinhoDeCompras carrinhoDeCompras = new CarrinhoDeCompras();
-
- // Adicionando itens ao carrinho
- carrinhoDeCompras.adicionarItem("Lápis", 2d, 3);
- carrinhoDeCompras.adicionarItem("Lápis", 2d, 3);
- carrinhoDeCompras.adicionarItem("Caderno", 35d, 1);
- carrinhoDeCompras.adicionarItem("Borracha", 2d, 2);
-
- // Exibindo os itens no carrinho
- carrinhoDeCompras.exibirItens();
-
- // Removendo um item do carrinho
- carrinhoDeCompras.removerItem("Lápis");
+ CarrinhoDeCompras carrinho = new CarrinhoDeCompras();
+ System.out.printf("Total do carrinho R$: %.2f%n ", carrinho.getTotalPrice());
+ carrinho.getItemDescriptions();
+ carrinho.removeItem("Arroz");
+ System.out.println("");
- // Exibindo os itens atualizados no carrinho
- carrinhoDeCompras.exibirItens();
+ carrinho.addItem("Arroz", 5.99, 2);
+ carrinho.addItem("Feijão", 4.49, 1);
+ carrinho.addItem("Macarrão", 3.29, 3);
+ System.out.printf("Total do carrinho R$: %.2f%n", carrinho.getTotalPrice());
+ carrinho.getItemDescriptions();
+ System.out.println("");
- // Calculando e exibindo o valor total da compra
- System.out.println("O valor total da compra é = " + carrinhoDeCompras.calcularValorTotal());
+ carrinho.removeItem("Feijão");
+ System.out.printf("Total do carrinho R$: %.2f%n", carrinho.getTotalPrice());
+ carrinho.getItemDescriptions();
+
}
}
\ No newline at end of file
diff --git a/src/main/java/list/OperacoesBasicas/Item.java b/src/main/java/list/OperacoesBasicas/Item.java
index 2bc801a..afda94a 100644
--- a/src/main/java/list/OperacoesBasicas/Item.java
+++ b/src/main/java/list/OperacoesBasicas/Item.java
@@ -2,34 +2,38 @@
public class Item {
//atributos
- private String nome;
- private double preco;
- private int quant;
+
+ private String name;
+ private double price;
+ private int quantity;
- public Item(String nome, double preco, int quant) {
- this.nome = nome;
- this.preco = preco;
- this.quant = quant;
- }
+ // construtor
+ public Item(String name, double price, int quantity) {
+ this.name = name;
+ this.price = price;
+ this.quantity = quantity;
+ }
- public String getNome() {
- return nome;
- }
+ // getters
+ public String getName() {
+ return name;
+ }
- public double getPreco() {
- return preco;
- }
+ public double getPrice() {
+ return price;
+ }
- public int getQuant() {
- return quant;
- }
+ public int getQuantity() {
+ return quantity;
+ }
- @Override
- public String toString() {
- return "Item{" +
- "nome='" + nome + '\'' +
- ", preco=" + preco +
- ", quant=" + quant +
- '}';
- }
+ // toString
+ @Override
+ public String toString() {
+ return "Item{" +
+ "nome='" + name + '\'' +
+ ", preco=" + price +
+ ", quantidade=" + quantity +
+ '}';
+ }
}
diff --git a/src/main/java/list/OperacoesBasicas/ListaTarefa.java b/src/main/java/list/OperacoesBasicas/ListaTarefa.java
deleted file mode 100644
index 8263097..0000000
--- a/src/main/java/list/OperacoesBasicas/ListaTarefa.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package main.java.list.OperacoesBasicas;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class ListaTarefa {
- //atributo
- private List tarefaList;
-
- public ListaTarefa() {
- this.tarefaList = new ArrayList<>();
- }
-
- public void adicionarTarefa(String descricao) {
- tarefaList.add(new Tarefa(descricao));
- }
-
- public void removerTarefa(String descricao) {
- List tarefasParaRemover = new ArrayList<>();
- if (!tarefaList.isEmpty()) {
- for (Tarefa t : tarefaList) {
- if (t.getDescricao().equalsIgnoreCase(descricao)) {
- tarefasParaRemover.add(t);
- }
- }
- tarefaList.removeAll(tarefasParaRemover);
- } else {
- System.out.println("A lista está vazia!");
- }
- }
-
- public int obterNumeroTotalTarefas() {
- return tarefaList.size();
- }
-
- public void obterDescricoesTarefas() {
- if (!tarefaList.isEmpty()) {
- System.out.println(tarefaList);
- } else {
- System.out.println("A lista está vazia!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe ListaTarefa
- ListaTarefa listaTarefa = new ListaTarefa();
-
- // Adicionando tarefas à lista
- listaTarefa.adicionarTarefa("Comprar leite");
- listaTarefa.adicionarTarefa("Estudar para o exame");
- listaTarefa.adicionarTarefa("Fazer exercícios");
-
- // Exibindo o número total de tarefas na lista
- System.out.println("Você tem " + listaTarefa.obterNumeroTotalTarefas() + " tarefas na lista:");
-
- // Exibindo as descrições das tarefas na lista
- listaTarefa.obterDescricoesTarefas();
-
- // Removendo uma tarefa da lista
- listaTarefa.removerTarefa("Trabalhar");
-
- // Exibindo o número total de tarefas na lista após a remoção
- System.out.println("Agora você tem " + listaTarefa.obterNumeroTotalTarefas() + " tarefas na lista:");
-
- // Exibindo as descrições das tarefas atualizadas na lista
- listaTarefa.obterDescricoesTarefas();
-
- // Removendo uma tarefa da lista quando a lista está vazia
- listaTarefa.removerTarefa("Estudar para o exame");
-
- // Exibindo o número total de tarefas na lista após tentar remover de uma lista vazia
- System.out.println("Agora você tem " + listaTarefa.obterNumeroTotalTarefas() + " tarefas na lista:");
- }
-}
diff --git a/src/main/java/list/OperacoesBasicas/Tarefa.java b/src/main/java/list/OperacoesBasicas/Tarefa.java
deleted file mode 100644
index 38b4abc..0000000
--- a/src/main/java/list/OperacoesBasicas/Tarefa.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package main.java.list.OperacoesBasicas;
-
-public class Tarefa {
- //atributo
- private String descricao;
-
- public Tarefa(String descricao) {
- this.descricao = descricao;
- }
-
- public String getDescricao() {
- return descricao;
- }
-
- @Override
- public String toString() {
- return descricao;
- }
-}
diff --git a/src/main/java/list/OperacoesBasicas/Task.java b/src/main/java/list/OperacoesBasicas/Task.java
new file mode 100644
index 0000000..61abd42
--- /dev/null
+++ b/src/main/java/list/OperacoesBasicas/Task.java
@@ -0,0 +1,21 @@
+package main.java.list.OperacoesBasicas;
+
+public class Task {
+
+ private String description;
+
+ public Task(String description) {
+ this.description = description;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ // to string
+ @Override
+ public String toString() {
+ return description;
+ }
+
+}
diff --git a/src/main/java/list/OperacoesBasicas/TaskList.java b/src/main/java/list/OperacoesBasicas/TaskList.java
new file mode 100644
index 0000000..a1274e2
--- /dev/null
+++ b/src/main/java/list/OperacoesBasicas/TaskList.java
@@ -0,0 +1,70 @@
+package main.java.list.OperacoesBasicas;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TaskList {
+ //atributo
+
+ private List tasksList;
+
+ public TaskList() {
+ this.tasksList = new ArrayList<>();
+
+ }
+
+ // métodos
+ public void addTask(String description) {
+ tasksList.add(new Task(description));
+ }
+
+ public void removeTask(String description) {
+ List tasksToRemove = new ArrayList<>();
+ for (Task task : tasksList) {
+ if (task.getDescription().equalsIgnoreCase(description)) {
+ tasksToRemove.add(task);
+ }
+ }
+ tasksList.removeAll(tasksToRemove);
+ }
+
+ public int getTaskCount() {
+ return tasksList.size(); // retorna o número de tarefas na lista
+ }
+
+ public void getTaskDescriptions() {
+ System.out.println(tasksList);
+ }
+
+ // to string
+
+
+ public static void main(String[] args) {
+
+
+ TaskList taskList = new TaskList();
+ System.out.println("Número de tarefas: " + taskList.getTaskCount());
+ taskList.getTaskDescriptions();
+ System.out.println("");
+
+
+ taskList.addTask("Estudar Java");
+ taskList.addTask("Fazer compras");
+ taskList.addTask("Lavar o carro");
+ System.out.println("Número de tarefas: " + taskList.getTaskCount());
+ taskList.getTaskDescriptions();
+ System.out.println("");
+
+ taskList.removeTask("Fazer compras");
+ System.out.println("Número de tarefas após remoção: " + taskList.getTaskCount());
+ taskList.getTaskDescriptions();
+ }
+
+
+
+ }
+
+
+
+
+
From cd834aee7c870d2c135aa69b768049a32af1e2c4 Mon Sep 17 00:00:00 2001
From: Blake
Date: Fri, 27 Jun 2025 21:26:38 -0300
Subject: [PATCH 02/11] 2st commit: list, search
---
src/main/java/list/Pesquisa/Book.java | 45 ++++++++
src/main/java/list/Pesquisa/BooksCatalog.java | 106 ++++++++++++++++++
.../java/list/Pesquisa/CatalogoLivros.java | 89 ---------------
src/main/java/list/Pesquisa/Livro.java | 39 -------
src/main/java/list/Pesquisa/SomaNumeros.java | 86 --------------
src/main/java/list/Pesquisa/SumNumbers.java | 79 +++++++++++++
6 files changed, 230 insertions(+), 214 deletions(-)
create mode 100644 src/main/java/list/Pesquisa/Book.java
create mode 100644 src/main/java/list/Pesquisa/BooksCatalog.java
delete mode 100644 src/main/java/list/Pesquisa/CatalogoLivros.java
delete mode 100644 src/main/java/list/Pesquisa/Livro.java
delete mode 100644 src/main/java/list/Pesquisa/SomaNumeros.java
create mode 100644 src/main/java/list/Pesquisa/SumNumbers.java
diff --git a/src/main/java/list/Pesquisa/Book.java b/src/main/java/list/Pesquisa/Book.java
new file mode 100644
index 0000000..3aba3df
--- /dev/null
+++ b/src/main/java/list/Pesquisa/Book.java
@@ -0,0 +1,45 @@
+package main.java.list.Pesquisa;
+
+public class Book {
+
+ private String name;
+ private String author;
+ private int publishingYear;
+
+ // Construtor
+ public Book(String name, String author, int publishingYear) {
+ this.name = name;
+ this.author = author;
+ this.publishingYear = publishingYear;
+ }
+
+ // Get
+ public String getName() {
+ return name;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+
+ public int getPublishingYear() {
+ return publishingYear;
+ }
+
+
+
+ @Override
+public String toString() {
+ return " \n" +
+ "Título: " + name + "\n" +
+ "Autor: " + author + "\n" +
+ "Ano de Publicação: " + publishingYear + "\n";
+}
+
+
+
+
+
+
+}
diff --git a/src/main/java/list/Pesquisa/BooksCatalog.java b/src/main/java/list/Pesquisa/BooksCatalog.java
new file mode 100644
index 0000000..41192ab
--- /dev/null
+++ b/src/main/java/list/Pesquisa/BooksCatalog.java
@@ -0,0 +1,106 @@
+package main.java.list.Pesquisa;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BooksCatalog {
+
+ private List booksCatalog;
+
+ // Construtor
+ public BooksCatalog() {
+ this.booksCatalog = new ArrayList<>();
+ }
+
+ public void addBook(String name, String author, int publishingYear) {
+ booksCatalog.add(new Book(name, author, publishingYear));
+ }
+
+ public List searchForAuthor(String author){
+ List booksByAuthor = new ArrayList<>();
+ if (!booksCatalog.isEmpty()){
+ for(Book b : booksCatalog){
+ if(b.getAuthor().equalsIgnoreCase(author)){
+ booksByAuthor.add(b);
+ }
+ }
+ } else {
+ System.out.println("Nenhum autor encontrado.");
+ }
+ return booksByAuthor;
+ }
+
+ public List searchForYearRange(int initialYear, int finalYear){
+ List booksByYear = new ArrayList<>();
+ if (!booksCatalog.isEmpty()){
+ for(Book b : booksCatalog){
+ if(b.getPublishingYear() >= initialYear && b.getPublishingYear() <= finalYear){
+ booksByYear.add(b);
+ }
+ }
+ } else {
+ throw new RuntimeException("Nenhum livro encontrado neste intervalo de anos.");
+ }
+ return booksByYear;
+ }
+
+
+ public Book searchForTitle(String name){
+ Book bookByTitle = null;
+ if (!booksCatalog.isEmpty()){
+ for(Book b : booksCatalog){
+ if(b.getName().equalsIgnoreCase(name)){
+ bookByTitle = b;
+ break;
+ }
+ }
+ } else {
+ System.out.println("Nenhum livro encontrado com este título.");
+ }
+ return bookByTitle;
+ }
+
+ public static void main(String[] args) {
+
+ // Pesquisa por livros
+ BooksCatalog booksCatalog = new BooksCatalog();
+
+ System.out.println("Número de livros: " + booksCatalog.booksCatalog.size());
+ System.out.println("--------------------");
+ // Adicionando livros
+ System.out.println("Adicionando livros ao catálogo...");
+ booksCatalog.addBook("Java Programming", "John Doe", 2020);
+ booksCatalog.addBook("Python Programming", "John Doe", 2019);
+ booksCatalog.addBook("Effective Java", "Joshua Bloch", 2018);
+ System.out.println("--------------------");
+ // pesquisa por autor
+ List booksByAuthor = booksCatalog.searchForAuthor("John Doe");
+ System.out.println("Livros encontrados por autor 'John Doe':" + booksByAuthor);
+ System.out.println("--------------------");
+ // autor não encontrado
+ List booksByAuthorNotFound = booksCatalog.searchForAuthor("Jane Smith");
+ System.out.println("Livros encontrados por autor 'Jane Smith': " + booksByAuthorNotFound);
+ System.out.println("--------------------");
+ // pesquisa por título
+ Book bookByTitle = booksCatalog.searchForTitle("Java Programming");
+ System.out.println("Livro encontrado por título 'Java Programming': " + bookByTitle);
+ System.out.println("--------------------");
+ // título não encontrado
+ Book bookByTitleNotFound = booksCatalog.searchForTitle("Python Programming");
+ System.out.println("Livro encontrado por título 'Python Programming': " + bookByTitleNotFound);
+ System.out.println(" ");
+ System.out.println("--------------------");
+ // pesquisa por ano
+ List booksByYear = booksCatalog.searchForYearRange(2015, 2021);
+ System.out.println("Livros encontrados entre 2015 e 2021: " + booksByYear);
+ System.out.println("--------------------");
+ // ano não encontrado
+ List booksByYearNotFound = booksCatalog.searchForYearRange(2000, 2010);
+ System.out.println("Livros encontrados entre 2000 e 2010: " + booksByYearNotFound);
+ System.out.println("--------------------");
+
+
+ }
+
+
+}
diff --git a/src/main/java/list/Pesquisa/CatalogoLivros.java b/src/main/java/list/Pesquisa/CatalogoLivros.java
deleted file mode 100644
index 5d9da5f..0000000
--- a/src/main/java/list/Pesquisa/CatalogoLivros.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package main.java.list.Pesquisa;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class CatalogoLivros {
- //atributo
- private List livroList;
-
- public CatalogoLivros() {
- this.livroList = new ArrayList<>();
- }
-
- public void adicionarLivro(String titulo, String autor, int anoPublicacao) {
- livroList.add(new Livro(titulo, autor, anoPublicacao));
- }
-
- public List pesquisarPorAutor(String autor) {
- List livrosPorAutor = new ArrayList<>();
- if (!livroList.isEmpty()) {
- for (Livro l : livroList) {
- if (l.getAutor().equalsIgnoreCase(autor)) {
- livrosPorAutor.add(l);
- }
- }
- return livrosPorAutor;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public List pesquisarPorIntervaloAnos(int anoInicial, int anoFinal) {
- List livrosPorIntervaloAnos = new ArrayList<>();
- if (!livroList.isEmpty()) {
- for (Livro l : livroList) {
- if (l.getAnoPublicacao() >= anoInicial && l.getAnoPublicacao() <= anoFinal) {
- livrosPorIntervaloAnos.add(l);
- }
- }
- return livrosPorIntervaloAnos;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public Livro pesquisarPorTitulo(String titulo) {
- Livro livroPorTitulo = null;
- if (!livroList.isEmpty()) {
- for (Livro l : livroList) {
- if (l.getTitulo().equalsIgnoreCase(titulo)) {
- livroPorTitulo = l;
- break;
- }
- }
- return livroPorTitulo;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância do catálogo de livros
- CatalogoLivros catalogoLivros = new CatalogoLivros();
-
- // Adicionando livros ao catálogo
- catalogoLivros.adicionarLivro("Microsserviços Prontos Para a Produção", "Susan J. Fowler", 2017);
- catalogoLivros.adicionarLivro("Java Guia do Programador", "Peter Jandl Junior", 2021);
- catalogoLivros.adicionarLivro("Código Limpo", "Robert C. Martin", 2009);
- catalogoLivros.adicionarLivro("O Codificador Limpo", "Robert C. Martin", 2012);
-
- // Exibindo livros pelo mesmo autor
- System.out.println(catalogoLivros.pesquisarPorAutor("Robert C. Martin"));
-
- // Exibindo livros pelo mesmo autor (caso em que não há livros de um autor específico)
- System.out.println(catalogoLivros.pesquisarPorAutor("Autor Inexistente"));
-
- // Exibindo livros dentro de um intervalo de anos
- System.out.println(catalogoLivros.pesquisarPorIntervaloAnos(2010, 2022));
-
- // Exibindo livros dentro de um intervalo de anos (caso em que não há livros no intervalo)
- System.out.println(catalogoLivros.pesquisarPorIntervaloAnos(2025, 2030));
-
- // Exibindo livros por título
- System.out.println(catalogoLivros.pesquisarPorTitulo("Java Guia do Programador"));
-
- // Exibindo livros por título (caso em que não há livros com o título especificado)
- System.out.println(catalogoLivros.pesquisarPorTitulo("Título Inexistente"));
- }
-}
diff --git a/src/main/java/list/Pesquisa/Livro.java b/src/main/java/list/Pesquisa/Livro.java
deleted file mode 100644
index 8a192ae..0000000
--- a/src/main/java/list/Pesquisa/Livro.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package main.java.list.Pesquisa;
-
-public class Livro {
- //atributos
- private String titulo;
- private String autor;
- private int anoPublicacao;
-
- public Livro(String titulo, String autor, int anoPublicacao) {
- this.titulo = titulo;
- this.autor = autor;
- this.anoPublicacao = anoPublicacao;
- }
-
- public String getTitulo() {
- return titulo;
- }
-
- public void setAutor(String autor) {
- this.autor = autor;
- }
-
- public String getAutor() {
- return autor;
- }
-
- public int getAnoPublicacao() {
- return anoPublicacao;
- }
-
- @Override
- public String toString() {
- return "Livro{" +
- "titulo='" + titulo + '\'' +
- ", autor='" + autor + '\'' +
- ", anoPublicacao=" + anoPublicacao +
- '}';
- }
-}
diff --git a/src/main/java/list/Pesquisa/SomaNumeros.java b/src/main/java/list/Pesquisa/SomaNumeros.java
deleted file mode 100644
index 3b8cd20..0000000
--- a/src/main/java/list/Pesquisa/SomaNumeros.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package main.java.list.Pesquisa;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class SomaNumeros {
- //atributos
- private List numeros;
-
- //construtor
- public SomaNumeros() {
- this.numeros = new ArrayList<>();
- }
-
- public void adicionarNumero(int numero) {
- this.numeros.add(numero);
- }
-
- public int calcularSoma() {
- int soma = 0;
- for (Integer numero : numeros)
- soma += numero;
- return soma;
- }
-
- public int encontrarMaiorNumero() {
- int maiorNumero = Integer.MIN_VALUE;
- if (!numeros.isEmpty()) {
- for (Integer numero : numeros) {
- if (numero >= maiorNumero) {
- maiorNumero = numero;
- }
- }
- return maiorNumero;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public int encontrarMenorNumero() {
- int menorNumero = Integer.MAX_VALUE;
- if (!numeros.isEmpty()) {
- for (Integer numero : numeros) {
- if (numero <= menorNumero) {
- menorNumero = numero;
- }
- }
- return menorNumero;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public void exibirNumeros() {
- if (!numeros.isEmpty()) {
- System.out.println(this.numeros);
- } else {
- System.out.println("A lista está vazia!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe SomaNumeros
- SomaNumeros somaNumeros = new SomaNumeros();
-
- // Adicionando números à lista
- somaNumeros.adicionarNumero(5);
- somaNumeros.adicionarNumero(0);
- somaNumeros.adicionarNumero(0);
- somaNumeros.adicionarNumero(-2);
- somaNumeros.adicionarNumero(10);
-
- // Exibindo a lista de números adicionados
- System.out.println("Números adicionados:");
- somaNumeros.exibirNumeros();
-
- // Calculando e exibindo a soma dos números na lista
- System.out.println("Soma dos números = " + somaNumeros.calcularSoma());
-
- // Encontrando e exibindo o maior número na lista
- System.out.println("Maior número = " + somaNumeros.encontrarMaiorNumero());
-
- // Encontrando e exibindo o menor número na lista
- System.out.println("Menor número = " + somaNumeros.encontrarMenorNumero());
- }
-}
diff --git a/src/main/java/list/Pesquisa/SumNumbers.java b/src/main/java/list/Pesquisa/SumNumbers.java
new file mode 100644
index 0000000..34a9573
--- /dev/null
+++ b/src/main/java/list/Pesquisa/SumNumbers.java
@@ -0,0 +1,79 @@
+package main.java.list.Pesquisa;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class SumNumbers {
+
+ private List numbers;
+
+ public SumNumbers() {
+ this.numbers = new ArrayList<>();
+ }
+
+
+ // métodos
+ public void addNumber(int number) {
+ numbers.add(number);
+ }
+
+ public int sumNumbers (){
+ int sum = 0;
+ for (Integer num : numbers){
+ sum += num;
+ }
+
+ return sum; //
+ }
+
+
+public int findBigNumber() {
+ if (numbers.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ return Collections.max(numbers);
+}
+
+
+ public int findSmallNumber (){
+ if (numbers.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ return Collections.min(numbers);
+}
+
+
+ public List printNumbers(){
+ return numbers;
+ }
+
+ public static void main(String[] args) {
+
+ SumNumbers n = new SumNumbers();
+ //lista vazia
+ System.out.println("Lista " + n.numbers);
+ System.out.println("----------");
+
+ n.addNumber(5);
+ n.addNumber(10);
+ n.addNumber(15);
+ n.addNumber(-2);
+ System.out.println("Lista " + n.numbers);
+
+ System.out.println("----------");
+ System.out.println("Soma = " + n.sumNumbers());
+ System.out.println("----------");
+
+ System.out.println("Maior número: " + n.findBigNumber());
+ System.out.println("Menor número: " + n.findSmallNumber());
+ System.out.println("----------");
+ }
+ }
+
+
+
+
+
+
+
From 7ed5ffb9f7df806ac1f0830d38646fde239b319e Mon Sep 17 00:00:00 2001
From: Blake
Date: Sat, 28 Jun 2025 16:32:06 -0300
Subject: [PATCH 03/11] 3rt commit: list, order
---
.../java/list/Ordenacao/NumberOrdering.java | 79 ++++++++++++++++
.../java/list/Ordenacao/OrdenacaoNumeros.java | 74 ---------------
.../java/list/Ordenacao/OrdenacaoPessoas.java | 58 ------------
src/main/java/list/Ordenacao/Person.java | 59 ++++++++++++
.../java/list/Ordenacao/PersonOrdering.java | 91 +++++++++++++++++++
src/main/java/list/Ordenacao/Pessoa.java | 49 ----------
6 files changed, 229 insertions(+), 181 deletions(-)
create mode 100644 src/main/java/list/Ordenacao/NumberOrdering.java
delete mode 100644 src/main/java/list/Ordenacao/OrdenacaoNumeros.java
delete mode 100644 src/main/java/list/Ordenacao/OrdenacaoPessoas.java
create mode 100644 src/main/java/list/Ordenacao/Person.java
create mode 100644 src/main/java/list/Ordenacao/PersonOrdering.java
delete mode 100644 src/main/java/list/Ordenacao/Pessoa.java
diff --git a/src/main/java/list/Ordenacao/NumberOrdering.java b/src/main/java/list/Ordenacao/NumberOrdering.java
new file mode 100644
index 0000000..00ec44b
--- /dev/null
+++ b/src/main/java/list/Ordenacao/NumberOrdering.java
@@ -0,0 +1,79 @@
+package main.java.list.Ordenacao;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+
+// Não é necessário implementar Comparable na classe pois Integer já é Comparable.
+public class NumberOrdering {
+
+
+
+private List numbers;
+
+// Construtor
+public NumberOrdering() {
+ this.numbers = new ArrayList<>();
+
+}
+
+//Métodos
+public void addNumber (int number){
+ numbers.add(number);
+
+}
+
+//Ordem ascendente
+public List orderSort() {
+ List naturalOrder = new ArrayList<>(this.numbers); // novo array para que a lsita original não seja modificada
+ if (numbers.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ }
+
+ Collections.sort(naturalOrder);
+ return naturalOrder;
+}
+
+//Ordem descrescente
+public List reverseOrder (){
+ List reverseNumList = new ArrayList<>(this.numbers); // novo array para que a lsita original não seja modificada
+ if (numbers.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ Collections.sort(reverseNumList, Collections.reverseOrder());
+ return reverseNumList;
+
+}
+
+public List printNumbers(){
+ return numbers;
+ }
+
+public static void main(String[] args) {
+
+ NumberOrdering n = new NumberOrdering();
+ //lista vazia
+ System.out.println("Lista " + n.numbers);
+ System.out.println("----------");
+
+ n.addNumber(8);
+ n.addNumber(10);
+ n.addNumber(15);
+ n.addNumber(-2);
+ System.out.println("Lista " + n.numbers);
+ System.out.println("----------");
+
+ //Ordem ascendente
+ System.out.println("Ordem ascendente " + n.orderSort());
+ System.out.println("----------");
+
+ //Ordem descendente
+ System.out.println("Ordem descendente " + n.reverseOrder());
+ System.out.println("----------");
+
+}
+
+
+
+}
diff --git a/src/main/java/list/Ordenacao/OrdenacaoNumeros.java b/src/main/java/list/Ordenacao/OrdenacaoNumeros.java
deleted file mode 100644
index c99a2e7..0000000
--- a/src/main/java/list/Ordenacao/OrdenacaoNumeros.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package main.java.list.Ordenacao;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class OrdenacaoNumeros {
- //atributos
- private List numerosList;
-
- //construtor
- public OrdenacaoNumeros() {
- this.numerosList = new ArrayList<>();
- }
-
- public void adicionarNumero(int numero) {
- this.numerosList.add(numero);
- }
-
- public List ordenarAscendente() {
- List numerosAscendente = new ArrayList<>(this.numerosList);
- if (!numerosList.isEmpty()) {
- Collections.sort(numerosAscendente);
- return numerosAscendente;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public List ordenarDescendente() {
- List numerosAscendente = new ArrayList<>(this.numerosList);
- if (!numerosList.isEmpty()) {
- numerosAscendente.sort(Collections.reverseOrder());
- return numerosAscendente;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public void exibirNumeros() {
- if (!numerosList.isEmpty()) {
- System.out.println(this.numerosList);
- } else {
- System.out.println("A lista está vazia!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe OrdenacaoNumeros
- OrdenacaoNumeros numeros = new OrdenacaoNumeros();
-
- // Adicionando números à lista
- numeros.adicionarNumero(2);
- numeros.adicionarNumero(5);
- numeros.adicionarNumero(4);
- numeros.adicionarNumero(1);
- numeros.adicionarNumero(99);
-
- // Exibindo a lista de números adicionados
- numeros.exibirNumeros();
-
- // Ordenando e exibindo em ordem ascendente
- System.out.println(numeros.ordenarAscendente());
-
- // Exibindo a lista
- numeros.exibirNumeros();
-
- // Ordenando e exibindo em ordem descendente
- System.out.println(numeros.ordenarDescendente());
-
- // Exibindo a lista
- numeros.exibirNumeros();
- }
-}
diff --git a/src/main/java/list/Ordenacao/OrdenacaoPessoas.java b/src/main/java/list/Ordenacao/OrdenacaoPessoas.java
deleted file mode 100644
index 05a325e..0000000
--- a/src/main/java/list/Ordenacao/OrdenacaoPessoas.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package main.java.list.Ordenacao;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class OrdenacaoPessoas {
- //atributo
- private List pessoaList;
-
- public OrdenacaoPessoas() {
- this.pessoaList = new ArrayList<>();
- }
-
- public void adicionarPessoa(String nome, int idade, double altura) {
- pessoaList.add(new Pessoa(nome, idade, altura));
- }
-
- public List ordenarPorIdade() {
- List pessoasPorIdade = new ArrayList<>(pessoaList);
- if (!pessoaList.isEmpty()) {
- Collections.sort(pessoasPorIdade);
- return pessoasPorIdade;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public List ordenarPorAltura() {
- List pessoasPorAltura = new ArrayList<>(pessoaList);
- if (!pessoaList.isEmpty()) {
- Collections.sort(pessoasPorAltura, new ComparatorPorAltura());
- return pessoasPorAltura;
- } else {
- throw new RuntimeException("A lista está vazia!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe OrdenacaoPessoas
- OrdenacaoPessoas ordenacaoPessoas = new OrdenacaoPessoas();
-
- // Adicionando pessoas à lista
- ordenacaoPessoas.adicionarPessoa("Alice", 20, 1.56);
- ordenacaoPessoas.adicionarPessoa("Bob", 30, 1.80);
- ordenacaoPessoas.adicionarPessoa("Charlie", 25, 1.70);
- ordenacaoPessoas.adicionarPessoa("David", 17, 1.56);
-
- // Exibindo a lista de pessoas adicionadas
- System.out.println(ordenacaoPessoas.pessoaList);
-
- // Ordenando e exibindo por idade
- System.out.println(ordenacaoPessoas.ordenarPorIdade());
-
- // Ordenando e exibindo por altura
- System.out.println(ordenacaoPessoas.ordenarPorAltura());
- }
-}
diff --git a/src/main/java/list/Ordenacao/Person.java b/src/main/java/list/Ordenacao/Person.java
new file mode 100644
index 0000000..f284c50
--- /dev/null
+++ b/src/main/java/list/Ordenacao/Person.java
@@ -0,0 +1,59 @@
+package main.java.list.Ordenacao;
+
+import java.util.Comparator;
+
+public class Person implements Comparable{
+
+ // atributos
+ private String name;
+ private double height;
+ private int age;
+
+ // Construtor
+ public Person(String name, double height, int age) {
+ this.name = name;
+ this.height = height;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public double getHeight() {
+ return height;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+
+ // comparable
+ @Override
+ public int compareTo(Person p) {
+ return Integer.compare(age, p.getAge());
+}
+
+
+
+ // método to string
+
+ @Override
+ public String toString() {
+
+ return String.format("[Nome: %s | Idade: %d | Altura: %.2f]", name, age, height);
+
+ }
+
+
+ // comparator para altura
+ public static class ComparatorByHeight implements Comparator {
+ @Override
+ public int compare(Person p1, Person p2) {
+ return Double.compare(p1.getHeight(), p2.getHeight());
+ }
+}
+
+
+}
diff --git a/src/main/java/list/Ordenacao/PersonOrdering.java b/src/main/java/list/Ordenacao/PersonOrdering.java
new file mode 100644
index 0000000..d0c81e0
--- /dev/null
+++ b/src/main/java/list/Ordenacao/PersonOrdering.java
@@ -0,0 +1,91 @@
+package main.java.list.Ordenacao;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import main.java.list.Ordenacao.Person.ComparatorByHeight;
+
+public class PersonOrdering {
+
+ private List person;
+
+ // construtor
+ public PersonOrdering() {
+ this.person = new ArrayList<>();
+ }
+
+
+
+
+ public void addPerson (String name, int age, double height){
+ person.add(new Person(name, height, age));
+ }
+
+ public List orderByAge(){
+ List personByAge = new ArrayList<>(person);
+
+ if (person.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else {
+ Collections.sort(personByAge);
+ return personByAge;
+ }
+ }
+
+ public List orderByHeight(){
+ List personByHeight = new ArrayList<>(person);
+ if (person.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else {
+ Collections.sort(personByHeight, new ComparatorByHeight());
+ return personByHeight;
+ }
+
+ }
+ @Override
+ public String toString() {
+ return "Lista de Pessoas:\n" +
+ String.join("\n",
+ person.stream()
+ .map(p -> p.toString())
+ .toList()
+ );
+ }
+
+
+
+ public static void main(String[] args) {
+
+ PersonOrdering personOrder = new PersonOrdering();
+
+ System.out.println(personOrder);
+ System.out.println("------------");
+
+ // Adcionando pessoas
+ personOrder.addPerson("Carlos", 20, 1.80);
+ personOrder.addPerson("Maria", 35, 1.60);
+ personOrder.addPerson("João", 10, 1.20);
+ personOrder.addPerson("Sarah", 16, 1.56);
+ personOrder.addPerson("Daniel", 40, 1.75);
+
+ System.out.println(personOrder);
+ System.out.println("------------");
+
+ //Order por idade
+ System.out.println("Ordem por Idade: " + personOrder.orderByAge());
+ System.out.println("------------");
+ System.out.println("Ordem por tamanho:" +personOrder.orderByHeight());
+
+ }
+
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/list/Ordenacao/Pessoa.java b/src/main/java/list/Ordenacao/Pessoa.java
deleted file mode 100644
index ef71a57..0000000
--- a/src/main/java/list/Ordenacao/Pessoa.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package main.java.list.Ordenacao;
-
-import java.util.Comparator;
-
-public class Pessoa implements Comparable {
- //atributos
- private String nome;
- private int idade;
- private double altura;
-
- public Pessoa(String nome, int idade, double altura) {
- this.nome = nome;
- this.idade = idade;
- this.altura = altura;
- }
-
- @Override
- public int compareTo(Pessoa p) {
- return Integer.compare(idade, p.getIdade());
- }
-
- public String getNome() {
- return nome;
- }
-
- public int getIdade() {
- return idade;
- }
-
- public double getAltura() {
- return altura;
- }
-
- @Override
- public String toString() {
- return "Pessoa{" +
- "nome='" + nome + '\'' +
- ", idade=" + idade +
- ", altura=" + altura +
- '}';
- }
-}
-
-class ComparatorPorAltura implements Comparator {
- @Override
- public int compare(Pessoa p1, Pessoa p2) {
- return Double.compare(p1.getAltura(), p2.getAltura());
- }
-}
\ No newline at end of file
From da1a57c43670b351574385ea750001ed6aa4042f Mon Sep 17 00:00:00 2001
From: Blake
Date: Sat, 28 Jun 2025 18:05:46 -0300
Subject: [PATCH 04/11] 4th commit: set, basic operation part 1
---
.../OperacoesBasicas/ConjuntoConvidados.java | 73 ------------------
.../ConjuntoPalavrasUnicas.java | 71 ------------------
.../java/set/OperacoesBasicas/Convidado.java | 42 -----------
src/main/java/set/OperacoesBasicas/Guest.java | 30 ++++++++
.../java/set/OperacoesBasicas/SetGuests.java | 74 +++++++++++++++++++
.../set/OperacoesBasicas/UniqueWords.java | 52 +++++++++++++
6 files changed, 156 insertions(+), 186 deletions(-)
delete mode 100644 src/main/java/set/OperacoesBasicas/ConjuntoConvidados.java
delete mode 100644 src/main/java/set/OperacoesBasicas/ConjuntoPalavrasUnicas.java
delete mode 100644 src/main/java/set/OperacoesBasicas/Convidado.java
create mode 100644 src/main/java/set/OperacoesBasicas/Guest.java
create mode 100644 src/main/java/set/OperacoesBasicas/SetGuests.java
create mode 100644 src/main/java/set/OperacoesBasicas/UniqueWords.java
diff --git a/src/main/java/set/OperacoesBasicas/ConjuntoConvidados.java b/src/main/java/set/OperacoesBasicas/ConjuntoConvidados.java
deleted file mode 100644
index 8ae9d60..0000000
--- a/src/main/java/set/OperacoesBasicas/ConjuntoConvidados.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package main.java.set.OperacoesBasicas;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class ConjuntoConvidados {
- //atributo
- private Set convidadosSet;
-
- public ConjuntoConvidados() {
- this.convidadosSet = new HashSet<>();
- }
-
- public void adicionarConvidado(String nome, int codigoConvite) {
- convidadosSet.add(new Convidado(nome, codigoConvite));
- }
-
- public void removerConvidadoPorCodigoConvite(int codigoConvite) {
- Convidado convidadoParaRemover = null;
- if (!convidadosSet.isEmpty()) {
- for (Convidado c : convidadosSet) {
- if (c.getCodigoConvite() == codigoConvite) {
- convidadoParaRemover = c;
- break;
- }
- }
- convidadosSet.remove(convidadoParaRemover);
- } else {
- throw new RuntimeException("O conjunto está vazio!");
- }
- }
-
- public int contarConvidados() {
- return convidadosSet.size();
- }
-
- public void exibirConvidados() {
- if (!convidadosSet.isEmpty()) {
- System.out.println(convidadosSet);
- } else {
- System.out.println("O conjunto está vazio!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe ConjuntoConvidados
- ConjuntoConvidados conjuntoConvidados = new ConjuntoConvidados();
-
- // Exibindo o número de convidados no conjunto (deve ser zero)
- System.out.println("Existem " + conjuntoConvidados.contarConvidados() + " convidado(s) dentro do Set de Convidados");
-
- // Adicionando convidados ao conjunto
- conjuntoConvidados.adicionarConvidado("Alice", 1234);
- conjuntoConvidados.adicionarConvidado("Bob", 1235);
- conjuntoConvidados.adicionarConvidado("Charlie", 1235);
- conjuntoConvidados.adicionarConvidado("David", 1236);
-
- // Exibindo os convidados no conjunto
- System.out.println("Convidados no conjunto:");
- conjuntoConvidados.exibirConvidados();
-
- // Exibindo o número atualizado de convidados no conjunto
- System.out.println("Existem " + conjuntoConvidados.contarConvidados() + " convidado(s) dentro do Set de Convidados");
-
- // Removendo um convidado do conjunto por código de convite
- conjuntoConvidados.removerConvidadoPorCodigoConvite(1236);
- System.out.println("Existem " + conjuntoConvidados.contarConvidados() + " convidado(s) dentro do Set de Convidados após a remoção");
-
- // Exibindo os convidados atualizados no conjunto
- System.out.println("Convidados no conjunto após a remoção:");
- conjuntoConvidados.exibirConvidados();
- }
-}
diff --git a/src/main/java/set/OperacoesBasicas/ConjuntoPalavrasUnicas.java b/src/main/java/set/OperacoesBasicas/ConjuntoPalavrasUnicas.java
deleted file mode 100644
index cd81295..0000000
--- a/src/main/java/set/OperacoesBasicas/ConjuntoPalavrasUnicas.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package main.java.set.OperacoesBasicas;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class ConjuntoPalavrasUnicas {
- //atributos
- private Set palavrasUnicasSet;
-
- public ConjuntoPalavrasUnicas() {
- this.palavrasUnicasSet = new HashSet<>();
- }
-
- public void adicionarPalavra(String palavra) {
- palavrasUnicasSet.add(palavra);
- }
-
- public void removerPalavra(String palavra) {
- if (!palavrasUnicasSet.isEmpty()) {
- if (palavrasUnicasSet.contains(palavra)) {
- palavrasUnicasSet.remove(palavra);
- } else {
- System.out.println("Palavra não encontrada no conjunto!");
- }
- } else {
- System.out.println("O conjunto está vazio!");
- }
- }
-
- public boolean verificarPalavra(String palavra) {
- return palavrasUnicasSet.contains(palavra);
- }
-
- public void exibirPalavrasUnicas() {
- if(!palavrasUnicasSet.isEmpty()) {
- System.out.println(palavrasUnicasSet);
- } else {
- System.out.println("O conjunto está vazio!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe ConjuntoPalavrasUnicas
- ConjuntoPalavrasUnicas conjuntoLinguagens = new ConjuntoPalavrasUnicas();
-
- // Adicionando linguagens únicas ao conjunto
- conjuntoLinguagens.adicionarPalavra("Java");
- conjuntoLinguagens.adicionarPalavra("Python");
- conjuntoLinguagens.adicionarPalavra("JavaScript");
- conjuntoLinguagens.adicionarPalavra("Python");
- conjuntoLinguagens.adicionarPalavra("C++");
- conjuntoLinguagens.adicionarPalavra("Ruby");
-
- // Exibindo as linguagens únicas no conjunto
- conjuntoLinguagens.exibirPalavrasUnicas();
-
- // Removendo uma linguagem do conjunto
- conjuntoLinguagens.removerPalavra("Python");
- conjuntoLinguagens.exibirPalavrasUnicas();
-
- // Removendo uma linguagem inexistente
- conjuntoLinguagens.removerPalavra("Swift");
-
- // Verificando se uma linguagem está no conjunto
- System.out.println("A linguagem 'Java' está no conjunto? " + conjuntoLinguagens.verificarPalavra("Java"));
- System.out.println("A linguagem 'Python' está no conjunto? " + conjuntoLinguagens.verificarPalavra("Python"));
-
- // Exibindo as linguagens únicas atualizadas no conjunto
- conjuntoLinguagens.exibirPalavrasUnicas();
- }
-}
diff --git a/src/main/java/set/OperacoesBasicas/Convidado.java b/src/main/java/set/OperacoesBasicas/Convidado.java
deleted file mode 100644
index 655bf27..0000000
--- a/src/main/java/set/OperacoesBasicas/Convidado.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package main.java.set.OperacoesBasicas;
-
-import java.util.Objects;
-
-public class Convidado {
- //atributos
- private String nome;
- private int codigoConvite;
-
- public Convidado(String nome, int codigoConvite) {
- this.nome = nome;
- this.codigoConvite = codigoConvite;
- }
-
- public String getNome() {
- return nome;
- }
-
- public int getCodigoConvite() {
- return codigoConvite;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof Convidado convidado)) return false;
- return getCodigoConvite() == convidado.getCodigoConvite();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getCodigoConvite());
- }
-
- @Override
- public String toString() {
- return "Convidado{" +
- "nome='" + nome + '\'' +
- ", codigoConvite=" + codigoConvite +
- '}';
- }
-}
diff --git a/src/main/java/set/OperacoesBasicas/Guest.java b/src/main/java/set/OperacoesBasicas/Guest.java
new file mode 100644
index 0000000..4699c7a
--- /dev/null
+++ b/src/main/java/set/OperacoesBasicas/Guest.java
@@ -0,0 +1,30 @@
+package main.java.set.OperacoesBasicas;
+
+public class Guest {
+
+ private String name;
+ private int invitationCode;
+
+ //Construtor
+ public Guest(String name, int invitationCode) {
+ this.name = name;
+ this.invitationCode = invitationCode;
+ }
+
+ //Get e set
+ public String getName() {
+ return name;
+ }
+
+ public int getInvitationCode() {
+ return invitationCode;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[Nome: %s | Convite nº : %d ]", name, invitationCode);
+ }
+
+
+
+}
diff --git a/src/main/java/set/OperacoesBasicas/SetGuests.java b/src/main/java/set/OperacoesBasicas/SetGuests.java
new file mode 100644
index 0000000..fc97f28
--- /dev/null
+++ b/src/main/java/set/OperacoesBasicas/SetGuests.java
@@ -0,0 +1,74 @@
+package main.java.set.OperacoesBasicas;
+
+
+import java.util.HashSet;
+
+import java.util.Set;
+
+public class SetGuests {
+
+ private Set guestList;
+
+ public SetGuests() {
+ this.guestList = new HashSet<>();
+ }
+
+ public void addGuest (String name, int invitationCode){
+ guestList.add(new Guest(name, invitationCode));
+ }
+
+ public void removeGuest (int invitationCode){
+ Guest guestToRemove = null;
+ for (Guest g : guestList){
+ if(g.getInvitationCode() == invitationCode){
+ guestToRemove = g;
+ break;
+ }
+
+ }
+ guestList.remove(guestToRemove);
+ }
+
+ // contar convidados com método set
+ public int countGuests (){
+ return guestList.size();
+ }
+
+ public void printGuests() {
+ System.out.println("Lista de convidados: " + guestList);
+ }
+
+
+ public static void main(String[] args) {
+
+ SetGuests guests = new SetGuests();
+
+ guests.printGuests();
+ System.out.println("----------------");
+ System.out.println("Adicionando convidados...");
+
+ guests.addGuest("Camila", 1);
+ guests.addGuest("Carlos", 2);
+ guests.addGuest("Camila", 3);
+ guests.addGuest("Renan", 4);
+ guests.addGuest("Sarah", 5);
+ guests.addGuest("Leon", 6);
+
+ guests.printGuests();
+ System.out.println("----------------");
+ System.out.println("Número de convidados: " + guests.countGuests());
+
+ System.out.println("----------------");
+ System.out.println("Removendo convidados...");
+ guests.removeGuest(3);
+
+ guests.printGuests();
+ System.out.println("----------------");
+ System.out.println("Número de convidados: " + guests.countGuests());
+
+
+ }
+
+
+
+}
diff --git a/src/main/java/set/OperacoesBasicas/UniqueWords.java b/src/main/java/set/OperacoesBasicas/UniqueWords.java
new file mode 100644
index 0000000..9eb6c7a
--- /dev/null
+++ b/src/main/java/set/OperacoesBasicas/UniqueWords.java
@@ -0,0 +1,52 @@
+package main.java.set.OperacoesBasicas;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class UniqueWords {
+
+ /*Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palavras únicas como atributo. Implemente os seguintes métodos:
+
+- `adicionarPalavra(String palavra)`: Adiciona uma palavra ao conjunto.
+- `removerPalavra(String palavra)`: Remove uma palavra do conjunto.
+- `verificarPalavra(String palavra)`: Verifica se uma palavra está presente no conjunto.
+- `exibirPalavrasUnicas()`: Exibe todas as palavras únicas do conjunto.
+
*/
+
+ private Set uniqueWordsSet;
+
+ public UniqueWords() {
+ this.uniqueWordsSet = new HashSet<>();
+
+ }
+
+
+ public void addWord(String word){
+ uniqueWordsSet.add(word);
+
+ }
+
+ // Remover palavras.
+public void removeWord(String word){
+ String wordToRemove = null;
+ for (String w : uniqueWordsSet){
+ if (w.equals(word)) {
+ wordToRemove = w;
+ break;
+ }
+ }
+ if (wordToRemove != null) {
+ uniqueWordsSet.remove(wordToRemove);
+ }
+}
+
+public void checkWord (String word){
+
+}
+
+public void printUniqueWords (){
+
+}
+
+
+}
From 9a82951c13c4dcf19ace67a7d7fa3d677b5576a8 Mon Sep 17 00:00:00 2001
From: Blake
Date: Sun, 29 Jun 2025 17:32:55 -0300
Subject: [PATCH 05/11] 4th commit: set, basic operations complete
---
.../set/OperacoesBasicas/UniqueWords.java | 54 +++++++++++++++----
1 file changed, 44 insertions(+), 10 deletions(-)
diff --git a/src/main/java/set/OperacoesBasicas/UniqueWords.java b/src/main/java/set/OperacoesBasicas/UniqueWords.java
index 9eb6c7a..55062f4 100644
--- a/src/main/java/set/OperacoesBasicas/UniqueWords.java
+++ b/src/main/java/set/OperacoesBasicas/UniqueWords.java
@@ -5,13 +5,6 @@
public class UniqueWords {
- /*Crie uma classe chamada "ConjuntoPalavrasUnicas" que possui um conjunto de palavras únicas como atributo. Implemente os seguintes métodos:
-
-- `adicionarPalavra(String palavra)`: Adiciona uma palavra ao conjunto.
-- `removerPalavra(String palavra)`: Remove uma palavra do conjunto.
-- `verificarPalavra(String palavra)`: Verifica se uma palavra está presente no conjunto.
-- `exibirPalavrasUnicas()`: Exibe todas as palavras únicas do conjunto.
- */
private Set uniqueWordsSet;
@@ -29,6 +22,7 @@ public void addWord(String word){
// Remover palavras.
public void removeWord(String word){
String wordToRemove = null;
+
for (String w : uniqueWordsSet){
if (w.equals(word)) {
wordToRemove = w;
@@ -40,13 +34,53 @@ public void removeWord(String word){
}
}
-public void checkWord (String word){
-
+public boolean checkWord (String word){
+ if (uniqueWordsSet.isEmpty()) {
+ throw new RuntimeException("A lista está vazia.");
+ }
+ else{
+ if (uniqueWordsSet.contains(word)){
+ System.out.println("A palavra \"" + word + "\" está presente no conjunto.");
+ return true;
+ } else {
+ System.out.println("A palavra \"" + word + "\" NÃO está presente no conjunto.");
+ return false;
+ }
+ }
+
}
public void printUniqueWords (){
-
+ System.out.println(uniqueWordsSet);
}
+public static void main(String[] args) {
+
+ UniqueWords wordsSet = new UniqueWords();
+ System.out.println("Lista de palavras únicas:");
+ wordsSet.printUniqueWords();
+ System.out.println("----------------------");
+
+ System.out.println("Adicionando palavras...");
+ wordsSet.addWord("Terra");
+ wordsSet.addWord("Sol");
+ wordsSet.addWord("Lua");
+ wordsSet.addWord("Lua"); // repetida para testar
+ wordsSet.addWord("Marte");
+ System.out.println("Lista de palavras únicas:");
+ wordsSet.printUniqueWords();
+ System.out.println("----------------------");
+
+
+ System.out.println("Removendo palavras...");
+ wordsSet.removeWord("Lua");
+ wordsSet.printUniqueWords();
+ System.out.println("----------------------");
+
+ wordsSet.checkWord("Sol");
+ wordsSet.checkWord("Mercúrio");
+ System.out.println("----------------------");
+
+}
}
From 79b60498c1077609b0a5d2c57009a6420be0027e Mon Sep 17 00:00:00 2001
From: Blake
Date: Sun, 29 Jun 2025 21:30:03 -0300
Subject: [PATCH 06/11] 5th commit: set, search
---
.../java/set/OperacoesBasicas/SetGuests.java | 2 +-
.../java/set/Pesquisa/AgendaContatos.java | 85 ----------
src/main/java/set/Pesquisa/CheckList.java | 149 ++++++++++++++++++
src/main/java/set/Pesquisa/Contact.java | 38 +++++
src/main/java/set/Pesquisa/ContactList.java | 87 ++++++++++
src/main/java/set/Pesquisa/Contato.java | 43 -----
src/main/java/set/Pesquisa/ListaTarefas.java | 142 -----------------
src/main/java/set/Pesquisa/Tarefa.java | 36 -----
src/main/java/set/Pesquisa/Task.java | 36 +++++
9 files changed, 311 insertions(+), 307 deletions(-)
delete mode 100644 src/main/java/set/Pesquisa/AgendaContatos.java
create mode 100644 src/main/java/set/Pesquisa/CheckList.java
create mode 100644 src/main/java/set/Pesquisa/Contact.java
create mode 100644 src/main/java/set/Pesquisa/ContactList.java
delete mode 100644 src/main/java/set/Pesquisa/Contato.java
delete mode 100644 src/main/java/set/Pesquisa/ListaTarefas.java
delete mode 100644 src/main/java/set/Pesquisa/Tarefa.java
create mode 100644 src/main/java/set/Pesquisa/Task.java
diff --git a/src/main/java/set/OperacoesBasicas/SetGuests.java b/src/main/java/set/OperacoesBasicas/SetGuests.java
index fc97f28..c660178 100644
--- a/src/main/java/set/OperacoesBasicas/SetGuests.java
+++ b/src/main/java/set/OperacoesBasicas/SetGuests.java
@@ -35,7 +35,7 @@ public int countGuests (){
}
public void printGuests() {
- System.out.println("Lista de convidados: " + guestList);
+ System.out.println("Agenda de contatos: " + guestList);
}
diff --git a/src/main/java/set/Pesquisa/AgendaContatos.java b/src/main/java/set/Pesquisa/AgendaContatos.java
deleted file mode 100644
index 23fc424..0000000
--- a/src/main/java/set/Pesquisa/AgendaContatos.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package main.java.set.Pesquisa;
-
-import java.util.HashSet;
-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();
- }
-}
diff --git a/src/main/java/set/Pesquisa/CheckList.java b/src/main/java/set/Pesquisa/CheckList.java
new file mode 100644
index 0000000..81bce4a
--- /dev/null
+++ b/src/main/java/set/Pesquisa/CheckList.java
@@ -0,0 +1,149 @@
+package main.java.set.Pesquisa;
+
+import java.util.HashSet;
+import java.util.Set;
+
+public class CheckList {
+
+ private Set checkList;
+
+ public CheckList() {
+ this.checkList = new HashSet<>();
+
+ }
+
+
+ public void addTask(String description) {
+ checkList.add(new Task(description, false));
+ }
+
+ public void removeTask(String description){
+ Task taskToRemove = null;
+ if (checkList.isEmpty()){
+ throw new RuntimeException("A lista está vazia.");
+
+ }else{
+ for (Task task : checkList){
+ if(task.getDescription().equalsIgnoreCase(description)){
+ taskToRemove = task;
+ break;
+ }
+ }
+ checkList.remove(taskToRemove);
+ }
+ }
+
+ public void showTasks(){
+ System.out.println("Listas de tarefas: " + checkList);
+ System.out.println("------------");
+ }
+
+ public int countTasks(){
+ return checkList.size();
+ }
+
+ public void checkComplete(String description) {
+ if (checkList.isEmpty()) {
+ throw new RuntimeException("A lista está vazia.");
+ } else {
+ for (Task task : checkList) {
+ if (task.getDescription().equalsIgnoreCase(description)) {
+ task.setCompleted(true);
+ }
+ }
+
+ }
+}
+
+ public void checkImcomplete(String description) {
+ if (checkList.isEmpty()) {
+ throw new RuntimeException("A lista está vazia.");
+
+ } else {
+ for (Task task : checkList) {
+ if (task.getDescription().equalsIgnoreCase(description)) {
+ task.setCompleted(false);
+ }
+ }
+
+ }
+
+}
+
+ public Set completedTasks (){
+ Set completedTasksList = new HashSet<>();
+ if (!checkList.isEmpty()){
+ for (Task taskC : checkList){
+ if (taskC.isCompleted() == true) {
+ completedTasksList.add(taskC);
+ }
+ }
+ }
+ return completedTasksList;
+
+ }
+
+
+ public Set imcompletedTasks (){
+ Set imcompletedTasksList = new HashSet<>();
+ if (!checkList.isEmpty()){
+ for (Task taskI : checkList){
+ if (taskI.isCompleted() == false) {
+ imcompletedTasksList.add(taskI);
+ }
+ }
+ }
+ return imcompletedTasksList;
+
+ }
+
+ public void removeAllTasks (){
+ System.out.println("--------------");
+ System.out.println("Removendo Tarefas...");
+ checkList.clear();
+ }
+
+
+ public static void main(String[] args) {
+
+ CheckList taskList = new CheckList();
+
+ taskList.showTasks();
+ System.out.println("Adicionando tarefas...");
+ taskList.addTask("Varrer o chão");
+ taskList.addTask("Lavar Louça");
+ taskList.addTask("Limpar o quarto");
+ taskList.addTask("Limpar o banheiro");
+
+ System.out.println("Número de tarefas: " + taskList.countTasks());
+ taskList.showTasks();
+
+ System.out.println("Removendo tarefas...");
+ taskList.removeTask("Limpar o banheiro");
+ System.out.println("Número de tarefas: " + taskList.countTasks());
+ taskList.showTasks();
+
+ System.out.println("Concluindo Tarefas...");
+ taskList.checkComplete("Varrer o chão");
+ taskList.checkComplete("Lavar Louça");
+ System.out.println("Número de tarefas: " + taskList.countTasks());
+ taskList.showTasks();
+
+ System.out.println("Tarefas Pendentes...");
+ taskList.checkImcomplete("Varrer o chão");
+ System.out.println("Número de tarefas: " + taskList.countTasks());
+ taskList.showTasks();
+
+ System.out.println("Verificando Tarefas...");
+ Set completed = taskList.completedTasks();
+ System.out.println("Tarefas Completadas: " + completed);
+ Set imcompleted = taskList.imcompletedTasks();
+ System.out.println("Tarefas Pendentes: " + imcompleted);
+
+
+ taskList.removeAllTasks();
+ System.out.println("Número de tarefas: " + taskList.countTasks());
+ taskList.showTasks();
+
+ }
+}
diff --git a/src/main/java/set/Pesquisa/Contact.java b/src/main/java/set/Pesquisa/Contact.java
new file mode 100644
index 0000000..9b9460b
--- /dev/null
+++ b/src/main/java/set/Pesquisa/Contact.java
@@ -0,0 +1,38 @@
+package main.java.set.Pesquisa;
+
+public class Contact {
+
+ // Cada contato possui atributos como nome e número de telefone.
+
+ private String name;
+ private int phone;
+
+
+ // Construtor
+ public Contact(String name, int phone) {
+ this.name = name;
+ this.phone = phone;
+ }
+
+
+
+ public String getName() {
+ return name;
+ }
+ public int getPhone() {
+ return phone;
+ }
+ public void setPhone(int phone) {
+ this.phone = phone;
+ }
+
+
+ @Override
+ public String toString() {
+ return String.format("[Nome: %s | Tel: %d ]", name, phone);
+
+ }
+
+
+
+}
diff --git a/src/main/java/set/Pesquisa/ContactList.java b/src/main/java/set/Pesquisa/ContactList.java
new file mode 100644
index 0000000..8af30b5
--- /dev/null
+++ b/src/main/java/set/Pesquisa/ContactList.java
@@ -0,0 +1,87 @@
+package main.java.set.Pesquisa;
+
+import java.util.HashSet;
+import java.util.Set;
+
+
+
+public class ContactList {
+
+ private Set contactsSetList;
+
+ public ContactList() {
+ this.contactsSetList = new HashSet<>();
+ }
+
+ public void addContact(String name, int phone){
+ contactsSetList.add(new Contact(name, phone));
+ }
+
+ public void showContacts(){
+ System.out.println("Lista de contatos: " + contactsSetList);
+ }
+
+ public Set searchForName(String name){
+ Set contactName = new HashSet<>();
+ if (!contactsSetList.isEmpty()){
+ for(Contact person : contactsSetList){
+ if (person.getName().equalsIgnoreCase(name)){
+ contactName.add(person);
+ }
+ }
+ }
+
+ return contactName;
+
+ }
+
+
+
+ public Contact updateContact (String name, int phoneNew) {
+ Contact contactNew = null;
+ if(contactsSetList.isEmpty()){
+ throw new RuntimeException("A lista está vazia.");
+ }
+ else {
+ for (Contact person : contactsSetList) {
+ if(person.getName().equals(name)){
+ person.setPhone(phoneNew);
+ contactNew = person;
+ break;
+ }
+ }
+ return contactNew;
+ }
+ }
+
+ public static void main(String[] args) {
+
+ ContactList contact = new ContactList();
+
+ contact.showContacts();
+ System.out.println("Adicionado contatos...");
+ contact.addContact("Carla Santos", 99999999);
+ contact.addContact("João Silva", 99999997);
+ contact.addContact("Leon Kennedy", 98999997);
+ contact.addContact("Maria Lourdes", 98999897);
+ contact.addContact("Maria Souza", 98898896);
+ contact.showContacts();
+ System.out.println("-----------");
+
+ System.out.println("Procurando contatos...");
+ Set contactName = contact.searchForName("Maria Lourdes");
+ System.out.println(contactName);
+ System.out.println("-----------");
+
+ // Atualizando Contato
+ Contact contactNew = contact.updateContact("Maria Lourdes", 999989999);
+ System.out.println("Contato Atualizado: " + contactNew);
+
+
+ }
+
+ }
+
+
+
+
diff --git a/src/main/java/set/Pesquisa/Contato.java b/src/main/java/set/Pesquisa/Contato.java
deleted file mode 100644
index 68b86ce..0000000
--- a/src/main/java/set/Pesquisa/Contato.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package main.java.set.Pesquisa;
-
-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 + "}";
- }
-}
diff --git a/src/main/java/set/Pesquisa/ListaTarefas.java b/src/main/java/set/Pesquisa/ListaTarefas.java
deleted file mode 100644
index 9b436a7..0000000
--- a/src/main/java/set/Pesquisa/ListaTarefas.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package main.java.set.Pesquisa;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class ListaTarefas {
- //atributos
- private Set tarefasSet;
-
- public ListaTarefas() {
- this.tarefasSet = new HashSet<>();
- }
-
- public void adicionarTarefa(String descricao) {
- tarefasSet.add(new Tarefa(descricao));
- }
-
- public void removerTarefa(String descricao) {
- Tarefa tarefaParaRemover = null;
- if (!tarefasSet.isEmpty()) {
- for (Tarefa t : tarefasSet) {
- if (t.getDescricao().equalsIgnoreCase(descricao)) {
- tarefaParaRemover = t;
- break;
- }
- }
- tarefasSet.remove(tarefaParaRemover);
- } else {
- System.out.println("O conjunto está vazio");
- }
-
- if(tarefaParaRemover == null) {
- System.out.println("Tarefa não encontrada!");
- }
- }
-
- public void exibirTarefas() {
- if(!tarefasSet.isEmpty()) {
- System.out.println(tarefasSet);
- } else {
- System.out.println("Tarefa não encontrada!");
- }
- }
-
- public int contarTarefas() {
- return tarefasSet.size();
- }
-
- public Set obterTarefasConcluidas() {
- Set tarefasConcluidas = new HashSet<>();
- for (Tarefa t : tarefasSet) {
- if (t.isConcluida()) {
- tarefasConcluidas.add(t);
- }
- }
- return tarefasConcluidas;
- }
-
- public Set obterTarefasPendentes() {
- Set tarefasNaoConcluidas = new HashSet<>();
- for (Tarefa t : tarefasSet) {
- if (!t.isConcluida()) {
- tarefasNaoConcluidas.add(t);
- }
- }
- return tarefasNaoConcluidas;
- }
-
- public void marcarTarefaConcluida(String descricao) {
- for (Tarefa t : tarefasSet) {
- if (t.getDescricao().equalsIgnoreCase(descricao)) {
- t.setConcluida(true);
- }
- }
- }
-
- public void marcarTarefaPendente(String descricao) {
- Tarefa tarefaParaMarcarComoPendente = null;
- for (Tarefa t : tarefasSet) {
- if (t.getDescricao().equalsIgnoreCase(descricao)) {
- tarefaParaMarcarComoPendente = t;
- break;
- }
- }
-
- if (tarefaParaMarcarComoPendente != null) {
- if(tarefaParaMarcarComoPendente.isConcluida()) {
- tarefaParaMarcarComoPendente.setConcluida(false);
- }
- } else {
- System.out.println("Tarefa não encontrada na lista.");
- }
- }
-
- public void limparListaTarefas() {
- if(tarefasSet.isEmpty()) {
- System.out.println("A lista já está vazia!");
- } else {
- tarefasSet.clear();
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância da classe ListaTarefas
- ListaTarefas listaTarefas = new ListaTarefas();
-
- // Adicionando tarefas à lista
- listaTarefas.adicionarTarefa("Estudar Java");
- listaTarefas.adicionarTarefa("Fazer exercícios físicos");
- listaTarefas.adicionarTarefa("Organizar a mesa de trabalho");
- listaTarefas.adicionarTarefa("Ler livro");
- listaTarefas.adicionarTarefa("Preparar apresentação");
-
- // Exibindo as tarefas na lista
- listaTarefas.exibirTarefas();
-
- // Removendo uma tarefa
- listaTarefas.removerTarefa("Fazer exercícios físicos");
- listaTarefas.exibirTarefas();
-
- // Contando o número de tarefas na lista
- System.out.println("Total de tarefas na lista: " + listaTarefas.contarTarefas());
-
- // Obtendo tarefas pendentes
- System.out.println(listaTarefas.obterTarefasPendentes());
-
- // Marcando tarefas como concluídas
- listaTarefas.marcarTarefaConcluida("Ler livro");
- listaTarefas.marcarTarefaConcluida("Estudar Java");
-
- // Obtendo tarefas concluídas
- System.out.println(listaTarefas.obterTarefasConcluidas());
-
- // Marcando tarefas como pendentes
- listaTarefas.marcarTarefaPendente("Estudar Java");
- listaTarefas.exibirTarefas();
-
- // Limpando a lista de tarefas
- listaTarefas.limparListaTarefas();
- listaTarefas.exibirTarefas();
- }
-}
diff --git a/src/main/java/set/Pesquisa/Tarefa.java b/src/main/java/set/Pesquisa/Tarefa.java
deleted file mode 100644
index 82f3e40..0000000
--- a/src/main/java/set/Pesquisa/Tarefa.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package main.java.set.Pesquisa;
-
-public class Tarefa {
- //atributos
- private String descricao;
- private boolean concluida;
-
- public Tarefa(String descricao) {
- this.descricao = descricao;
- this.concluida = false;
- }
-
- public String getDescricao() {
- return descricao;
- }
-
- public boolean isConcluida() {
- return concluida;
- }
-
- public void setDescricao(String descricao) {
- this.descricao = descricao;
- }
-
- public void setConcluida(boolean concluida) {
- this.concluida = concluida;
- }
-
- @Override
- public String toString() {
- return "Tarefa{" +
- "descricao='" + descricao + '\'' +
- ", concluida=" + concluida +
- '}';
- }
-}
diff --git a/src/main/java/set/Pesquisa/Task.java b/src/main/java/set/Pesquisa/Task.java
new file mode 100644
index 0000000..7e6c4ed
--- /dev/null
+++ b/src/main/java/set/Pesquisa/Task.java
@@ -0,0 +1,36 @@
+package main.java.set.Pesquisa;
+
+public class Task {
+
+ private String description;
+ private boolean completed;
+
+ // Construtor
+ public Task(String description, boolean completed) {
+ this.description = description;
+ this.completed = completed;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public boolean isCompleted() {
+ return completed;
+ }
+
+ public void setCompleted(boolean completed) {
+ this.completed = completed;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[Descrição: %s | Completado: %s]", description, completed);
+ }
+
+
+
+
+
+
+}
From 0a0433b2b8cd9b4e9e95cbc8dd9b500e95925fbe Mon Sep 17 00:00:00 2001
From: Blake
Date: Sun, 29 Jun 2025 22:11:47 -0300
Subject: [PATCH 07/11] 6th commit: set, equals and hashcode fix
---
src/main/java/set/OperacoesBasicas/Guest.java | 17 +++++++++++++++--
.../java/set/OperacoesBasicas/SetGuests.java | 1 +
src/main/java/set/Pesquisa/Contact.java | 13 +++++++++++++
src/main/java/set/Pesquisa/ContactList.java | 1 +
4 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/main/java/set/OperacoesBasicas/Guest.java b/src/main/java/set/OperacoesBasicas/Guest.java
index 4699c7a..cd6b5c1 100644
--- a/src/main/java/set/OperacoesBasicas/Guest.java
+++ b/src/main/java/set/OperacoesBasicas/Guest.java
@@ -1,5 +1,7 @@
package main.java.set.OperacoesBasicas;
+import java.util.Objects;
+
public class Guest {
private String name;
@@ -25,6 +27,17 @@ public String toString() {
return String.format("[Nome: %s | Convite nº : %d ]", name, invitationCode);
}
-
-
+ // para evitar convites repertidos
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Guest guest)) return false;
+ return getInvitationCode() == guest.getInvitationCode();
+
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getInvitationCode());
+ }
}
diff --git a/src/main/java/set/OperacoesBasicas/SetGuests.java b/src/main/java/set/OperacoesBasicas/SetGuests.java
index c660178..790cefd 100644
--- a/src/main/java/set/OperacoesBasicas/SetGuests.java
+++ b/src/main/java/set/OperacoesBasicas/SetGuests.java
@@ -53,6 +53,7 @@ public static void main(String[] args) {
guests.addGuest("Renan", 4);
guests.addGuest("Sarah", 5);
guests.addGuest("Leon", 6);
+ guests.addGuest("Lion", 6); // para verificar erro e se aparece na lista
guests.printGuests();
System.out.println("----------------");
diff --git a/src/main/java/set/Pesquisa/Contact.java b/src/main/java/set/Pesquisa/Contact.java
index 9b9460b..ceebaae 100644
--- a/src/main/java/set/Pesquisa/Contact.java
+++ b/src/main/java/set/Pesquisa/Contact.java
@@ -1,5 +1,7 @@
package main.java.set.Pesquisa;
+import java.util.Objects;
+
public class Contact {
// Cada contato possui atributos como nome e número de telefone.
@@ -26,6 +28,17 @@ public void setPhone(int phone) {
this.phone = phone;
}
+ // para Não repetir contatos
+ @Override
+ public boolean equals(Object o){
+ if (this == o) return true;
+ if (!(o instanceof Contact contact)) return false;
+ return Objects.equals(getName(), contact.getName());
+ }
+ @Override
+ public int hashCode() {
+ return Objects.hash(getName());
+ }
@Override
public String toString() {
diff --git a/src/main/java/set/Pesquisa/ContactList.java b/src/main/java/set/Pesquisa/ContactList.java
index 8af30b5..84f4f7e 100644
--- a/src/main/java/set/Pesquisa/ContactList.java
+++ b/src/main/java/set/Pesquisa/ContactList.java
@@ -65,6 +65,7 @@ public static void main(String[] args) {
contact.addContact("Leon Kennedy", 98999997);
contact.addContact("Maria Lourdes", 98999897);
contact.addContact("Maria Souza", 98898896);
+ contact.addContact("Maria Souza", 98895896); // repetido pra testar
contact.showContacts();
System.out.println("-----------");
From 918308bbf81dd78814d89e2a037e5d978b630e62 Mon Sep 17 00:00:00 2001
From: Blake
Date: Mon, 30 Jun 2025 14:14:25 -0300
Subject: [PATCH 08/11] 7th commit: set, order
---
src/main/java/set/Ordenacao/Aluno.java | 62 ------------
.../java/set/Ordenacao/CadastroProdutos.java | 57 -----------
.../java/set/Ordenacao/GerenciadorAlunos.java | 82 ----------------
src/main/java/set/Ordenacao/Product.java | 85 ++++++++++++++++
.../set/Ordenacao/ProductRegistration.java | 85 ++++++++++++++++
src/main/java/set/Ordenacao/Produto.java | 77 ---------------
src/main/java/set/Ordenacao/Student.java | 71 ++++++++++++++
.../java/set/Ordenacao/StudentManagement.java | 96 +++++++++++++++++++
8 files changed, 337 insertions(+), 278 deletions(-)
delete mode 100644 src/main/java/set/Ordenacao/Aluno.java
delete mode 100644 src/main/java/set/Ordenacao/CadastroProdutos.java
delete mode 100644 src/main/java/set/Ordenacao/GerenciadorAlunos.java
create mode 100644 src/main/java/set/Ordenacao/Product.java
create mode 100644 src/main/java/set/Ordenacao/ProductRegistration.java
delete mode 100644 src/main/java/set/Ordenacao/Produto.java
create mode 100644 src/main/java/set/Ordenacao/Student.java
create mode 100644 src/main/java/set/Ordenacao/StudentManagement.java
diff --git a/src/main/java/set/Ordenacao/Aluno.java b/src/main/java/set/Ordenacao/Aluno.java
deleted file mode 100644
index d924034..0000000
--- a/src/main/java/set/Ordenacao/Aluno.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package main.java.set.Ordenacao;
-
-import java.util.Comparator;
-import java.util.Objects;
-
-public class Aluno implements Comparable{
- //atributos
- private String nome;
- private Long matricula;
- private double media;
-
- public Aluno(String nome, Long matricula, double media) {
- this.nome = nome;
- this.matricula = matricula;
- this.media = media;
- }
-
- public String getNome() {
- return nome;
- }
-
- public Long getMatricula() {
- return matricula;
- }
-
- public double getMedia() {
- return media;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof Aluno aluno)) return false;
- return Objects.equals(getMatricula(), aluno.getMatricula());
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getMatricula());
- }
-
- @Override
- public int compareTo(Aluno aluno) {
- return nome.compareTo(aluno.getNome());
- }
-
- @Override
- public String toString() {
- return "Aluno{" +
- "nome='" + nome + '\'' +
- ", matricula=" + matricula +
- ", media=" + media +
- '}';
- }
-}
-
-class ComparatorNota implements Comparator {
- @Override
- public int compare(Aluno o1, Aluno o2) {
- return Double.compare(o1.getMedia(), o2.getMedia());
- }
-}
diff --git a/src/main/java/set/Ordenacao/CadastroProdutos.java b/src/main/java/set/Ordenacao/CadastroProdutos.java
deleted file mode 100644
index 4dbcf9e..0000000
--- a/src/main/java/set/Ordenacao/CadastroProdutos.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package main.java.set.Ordenacao;
-
-import java.util.HashSet;
-import java.util.Set;
-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());
- }
-}
diff --git a/src/main/java/set/Ordenacao/GerenciadorAlunos.java b/src/main/java/set/Ordenacao/GerenciadorAlunos.java
deleted file mode 100644
index 7c9da5e..0000000
--- a/src/main/java/set/Ordenacao/GerenciadorAlunos.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package main.java.set.Ordenacao;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.TreeSet;
-
-public class GerenciadorAlunos {
- //atributos
- private Set alunosSet;
-
- public GerenciadorAlunos() {
- this.alunosSet = new HashSet<>();
- }
-
- public void adicionarAluno(String nome, Long matricula, double media) {
- alunosSet.add(new Aluno(nome, matricula, media));
- }
-
- public void removerAlunoPorMatricula(long matricula) {
- Aluno alunoParaRemover = null;
- if (!alunosSet.isEmpty()) {
- for (Aluno a : alunosSet) {
- if (a.getMatricula() == matricula) {
- alunoParaRemover = a;
- break;
- }
- }
- alunosSet.remove(alunoParaRemover);
- } else {
- throw new RuntimeException("O conjunto está vazio!");
- }
-
- if (alunoParaRemover == null) {
- System.out.println("Matricula não encontrada!");
- }
- }
-
- public void exibirAlunosPorNome() {
- Set alunosPorNome = new TreeSet<>(alunosSet);
- if (!alunosSet.isEmpty()) {
- System.out.println(alunosPorNome);
- } else {
- System.out.println("O conjunto está vazio!");
- }
- }
-
- public void exibirAlunosPorNota() {
- Set alunosPorNota = new TreeSet<>(new ComparatorNota());
- if (!alunosSet.isEmpty()) {
- alunosPorNota.addAll(alunosSet);
- System.out.println(alunosPorNota);
- } else {
- System.out.println("O conjunto está vazio!");
- }
- }
-
- public static void main(String[] args) {
- // Criando uma instância do GerenciadorAlunos
- GerenciadorAlunos gerenciadorAlunos = new GerenciadorAlunos();
-
- // Adicionando alunos ao gerenciador
- gerenciadorAlunos.adicionarAluno("João", 123456L, 7.5);
- gerenciadorAlunos.adicionarAluno("Maria", 123457L, 9.0);
- gerenciadorAlunos.adicionarAluno("Carlos", 123458L, 5.0);
- gerenciadorAlunos.adicionarAluno("Ana", 123459L, 6.8);
-
- // Exibindo todos os alunos no gerenciador
- System.out.println("Alunos no gerenciador:");
- System.out.println(gerenciadorAlunos.alunosSet);
-
- // Removendo um aluno com matrícula inválida e outro pelo número de matrícula
- gerenciadorAlunos.removerAlunoPorMatricula(000L);
- gerenciadorAlunos.removerAlunoPorMatricula(123457L);
- System.out.println(gerenciadorAlunos.alunosSet);
-
- // Exibindo alunos ordenados por nome
- gerenciadorAlunos.exibirAlunosPorNome();
-
- // Exibindo alunos ordenados por nota
- gerenciadorAlunos.exibirAlunosPorNota();
- }
-}
diff --git a/src/main/java/set/Ordenacao/Product.java b/src/main/java/set/Ordenacao/Product.java
new file mode 100644
index 0000000..9cb48aa
--- /dev/null
+++ b/src/main/java/set/Ordenacao/Product.java
@@ -0,0 +1,85 @@
+package main.java.set.Ordenacao;
+
+import java.util.Comparator;
+import java.util.Objects;
+
+public class Product implements Comparable{
+
+ // Cada produto possui atributos como nome, cod, preço e quantidade.
+ private String name;
+ private long code;
+ private double price;
+ private int quantity;
+
+ // Construtor
+ public Product(String name, long code, double price, int quantity) {
+ this.name = name;
+ this.code = code;
+ this.price = price;
+ this.quantity = quantity;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public long getCode() {
+ return code;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[Nome: %s | Código: %d | Preço (R$): %.2f | Quantidade: %d ]", name, code, price, quantity);
+ }
+
+ // Método Equal e Hash: o produto é igual se o código é igual
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!(obj instanceof Product product))
+ return false;
+ return getCode() == product.getCode();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getCode());
+ }
+
+ //implementa Comparable porque o TreeSet não sabe como comparar dois objetos Product para decidir a ordem
+ @Override
+ public int compareTo(Product o) {
+ return name.compareToIgnoreCase(o.getName());
+ }
+//Neste caso, optamos por ordenar os produtos pelo atributo 'name'.
+// O método compareToIgnoreCase() é utilizado para fazer a comparação
+// de strings desconsiderando diferenças entre maiúsculas e minúsculas.
+
+
+ // como quero ordernar outro critério, usa Comparator
+ public static class ComparatorByPrice implements Comparator {
+ @Override
+ public int compare(Product p1, Product p2) {
+ return Double.compare(p1.getPrice(),p2.getPrice());
+ }
+}
+ // como quero ordernar outro critério, usa Comparator
+ public static class ComparatorByQuantity implements Comparator {
+ @Override
+ public int compare(Product p1, Product p2) {
+ return Integer.compare(p1.getQuantity(),p2.getQuantity());
+ }
+
+}
+
+}
\ No newline at end of file
diff --git a/src/main/java/set/Ordenacao/ProductRegistration.java b/src/main/java/set/Ordenacao/ProductRegistration.java
new file mode 100644
index 0000000..5f0554a
--- /dev/null
+++ b/src/main/java/set/Ordenacao/ProductRegistration.java
@@ -0,0 +1,85 @@
+package main.java.set.Ordenacao;
+
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
+
+import main.java.set.Ordenacao.Product.ComparatorByPrice;
+import main.java.set.Ordenacao.Product.ComparatorByQuantity;
+
+public class ProductRegistration {
+
+ /* - `adicionarProduto(long cod, String nome, double preco, int quantidade)`: Adiciona um produto ao cadastro.
+- `exibirProdutosPorNome()`: Exibe todos os produtos do cadastro em ordem alfabética pelo nome.
+- `exibirProdutosPorPreco()`: Exibe todos os produtos do cadastro em ordem crescente de preço.*/
+
+ private Set productList;
+
+ public ProductRegistration() {
+ this.productList = new HashSet<>();
+ }
+
+ public void addProduct (long code, String name, double price, int quantity){
+ productList.add(new Product(name, code, price, quantity));
+ }
+
+ public Set showProductByName(){
+ Set productByName = new TreeSet<>(productList);
+ if (productList.isEmpty()){
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else{
+ return productByName;
+ }
+
+ }
+
+ public Set showProductByPrice(){
+ Set productByPrice = new TreeSet<>(new ComparatorByPrice());
+ if (productList.isEmpty()){
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else{
+ productByPrice.addAll(productList);
+ return productByPrice;
+ }
+
+ }
+
+ public Set showProductByQuantity(){
+ Set productByQuantity = new TreeSet<>(new ComparatorByQuantity());
+ if (productList.isEmpty()){
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else{
+ productByQuantity.addAll(productList);
+ return productByQuantity;
+ }
+
+ }
+
+
+
+ public static void main(String[] args) {
+
+ ProductRegistration products = new ProductRegistration();
+
+ System.out.println("Adicionando produtos...");
+ products.addProduct(1, "Arroz", 30.00, 3);
+ products.addProduct(2, "Feijão", 10.00, 2);
+ products.addProduct(3, "Caldo de galinha", 1.00, 10);
+ products.addProduct(4, "Broa de Milho", 11.00, 5);
+ products.addProduct(5, "Ovos", 15.00, 30);
+ products.addProduct(5, "Farinha", 16.00, 3);
+
+
+ System.out.println("Produtos por ordem alfabética: " + products.showProductByName());
+ System.out.println("--------------");
+ System.out.println("Produtos por ordem crescente (R$): " + products.showProductByPrice());
+ System.out.println("--------------");
+ System.out.println("Produtos por ordem de Quantidade crescente: " + products.showProductByQuantity());
+ System.out.println("--------------");
+ }
+}
+
diff --git a/src/main/java/set/Ordenacao/Produto.java b/src/main/java/set/Ordenacao/Produto.java
deleted file mode 100644
index d48d34c..0000000
--- a/src/main/java/set/Ordenacao/Produto.java
+++ /dev/null
@@ -1,77 +0,0 @@
-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 +
- '}';
- }
-}
-
-class ComparatorPorPreco 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/Student.java b/src/main/java/set/Ordenacao/Student.java
new file mode 100644
index 0000000..48021d0
--- /dev/null
+++ b/src/main/java/set/Ordenacao/Student.java
@@ -0,0 +1,71 @@
+package main.java.set.Ordenacao;
+
+import java.util.Comparator;
+import java.util.Objects;
+
+public class Student implements Comparable{
+
+ //Cada aluno terá atributos como nome, matrícula e nota.
+ private String name;
+ private long registration;
+ private double averageGrade;
+
+ public Student(String name, long registration, double averageGrade) {
+ this.name = name;
+ this.registration = registration;
+ this.averageGrade = averageGrade;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Long getRegistration() {
+ return registration;
+ }
+
+ public double getAverageGrade() {
+ return averageGrade;
+ }
+
+ public void setAverageGrade(double averageGrade) {
+ this.averageGrade = averageGrade;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[Nome: %s | Matrícula: %d | Nota: %.2f ]", name, registration, averageGrade);
+ }
+
+ // equals e hashcode: cada aluno tem uma matricula única
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!(obj instanceof Student student))
+ return false;
+ return getRegistration() == student.getRegistration();
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(getRegistration());
+ }
+
+ // Comparar studante por nome
+ @Override
+ public int compareTo(Student student) {
+ return name.compareToIgnoreCase(student.getName());
+ }
+
+ // Comparar por média
+ public static class ComparatorByAverage implements Comparator{
+ @Override
+ public int compare(Student s1, Student s2) {
+ return Double.compare(s1.getAverageGrade(), s2.getAverageGrade());
+ }
+
+ }
+
+
+}
diff --git a/src/main/java/set/Ordenacao/StudentManagement.java b/src/main/java/set/Ordenacao/StudentManagement.java
new file mode 100644
index 0000000..ef3f65e
--- /dev/null
+++ b/src/main/java/set/Ordenacao/StudentManagement.java
@@ -0,0 +1,96 @@
+package main.java.set.Ordenacao;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
+
+import main.java.set.Ordenacao.Student.ComparatorByAverage;
+
+public class StudentManagement {
+
+ private Set studentsList;
+
+ public StudentManagement() {
+ this.studentsList = new HashSet<>();
+ }
+
+ /*- `adicionarAluno(String nome, Long matricula, double media)`: Adiciona um aluno ao conjunto.
+- `removerAluno(long matricula)`: Remove um aluno ao conjunto a partir da matricula, se estiver presente.
+- `exibirAlunosPorNome()`: Exibe todos os alunos do conjunto em ordem alfabética pelo nome.
+- `exibirAlunosPorNota()`: Exibe todos os alunos do conjunto em ordem crescente de nota.
+- `exibirAlunos()`: Exibe todos os alunos do conjunto. */
+
+ public void addStudent(String name, Long Registration, double averageGrade) {
+ studentsList.add(new Student(name, Registration, averageGrade));
+ }
+
+ public void removeStudent(long registration) {
+ Student studentToRemove = null;
+ for (Student s : studentsList) {
+ if (s.getRegistration() == registration) {
+ studentToRemove = s;
+ break;
+ }
+ }
+ studentsList.remove(studentToRemove);
+ }
+
+ public void showAllStudents() {
+ System.out.println("Lista de alunos: " + studentsList);
+ System.out.println("------------");
+ }
+
+ public Set showStudentsByName() {
+ Set studentName = new TreeSet<>(studentsList);
+ if (studentsList.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ } else {
+ System.out.println("------------");
+ return studentName;
+
+ }
+ }
+
+ public Set showStudentsByAverage() {
+ Set studentAverage = new TreeSet<>(new ComparatorByAverage());
+ if (studentsList.isEmpty()) {
+ throw new IllegalStateException("A lista está vazia.");
+ } else {
+ studentAverage.addAll(studentsList);
+ System.out.println("------------");
+ return studentAverage;
+ }
+ }
+
+
+
+ public static void main(String[] args) {
+ StudentManagement student = new StudentManagement();
+
+ student.showAllStudents();
+
+ System.out.println("Adicionando Alunos....");
+ student.addStudent("Maria", 1L, 8.00);
+ student.addStudent("João", 1L, 8.00); // teste para ver se repete
+ student.addStudent("Jonas", 8L, 7.00);
+ student.addStudent("Carla", 3L, 5.00);
+ student.addStudent("Carla", 4L, 6.00);
+ student.addStudent("Vanessa", 5L, 1.00);
+ student.addStudent("Jorge", 6L, 8.50);
+ student.addStudent("Vania", 7L, 8.70);
+ student.showAllStudents();
+
+ System.out.println("Removendo Alunos....");
+ student.removeStudent(3);
+ student.removeStudent(5);
+ student.showAllStudents();
+
+
+ System.out.println("Exibindo Alunos por nome....");
+ System.out.println("Ordem alfabética: " + student.showStudentsByName());
+
+
+ System.out.println("Exibindo Alunos por média....");
+ System.out.println("Ordem por média: " + student.showStudentsByAverage());
+ }
+}
From e550a43b6c2f6d5741e629bbd077a5e8f20a531c Mon Sep 17 00:00:00 2001
From: Blake
Date: Tue, 1 Jul 2025 16:33:00 -0300
Subject: [PATCH 09/11] 8th commit: map, basic operations
---
.../map/OperacoesBasicas/AgendaContatos.java | 73 --------------
.../map/OperacoesBasicas/ContactsList.java | 76 +++++++++++++++
.../java/map/OperacoesBasicas/Dicionario.java | 63 -------------
.../java/map/OperacoesBasicas/Dictionary.java | 94 +++++++++++++++++++
4 files changed, 170 insertions(+), 136 deletions(-)
delete mode 100644 src/main/java/map/OperacoesBasicas/AgendaContatos.java
create mode 100644 src/main/java/map/OperacoesBasicas/ContactsList.java
delete mode 100644 src/main/java/map/OperacoesBasicas/Dicionario.java
create mode 100644 src/main/java/map/OperacoesBasicas/Dictionary.java
diff --git a/src/main/java/map/OperacoesBasicas/AgendaContatos.java b/src/main/java/map/OperacoesBasicas/AgendaContatos.java
deleted file mode 100644
index a854e35..0000000
--- a/src/main/java/map/OperacoesBasicas/AgendaContatos.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package main.java.map.OperacoesBasicas;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class AgendaContatos {
- //atributo
- private Map agendaContatoMap;
-
- public AgendaContatos() {
- 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("Contato não encontrado na agenda.");
- }
- } else {
- System.out.println("A agenda de contatos está vazia.");
- }
- return numeroPorNome;
- }
-
- public static void main(String[] args) {
- AgendaContatos agendaContatos = new AgendaContatos();
-
- // 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);
-
- agendaContatos.exibirContatos();
-
- // Remover um contato
- agendaContatos.removerContato("Maria");
- agendaContatos.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);
-
- String nomePesquisaNaoExistente = "Paula";
- Integer numeroPesquisaNaoExistente = agendaContatos.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/ContactsList.java b/src/main/java/map/OperacoesBasicas/ContactsList.java
new file mode 100644
index 0000000..ec540df
--- /dev/null
+++ b/src/main/java/map/OperacoesBasicas/ContactsList.java
@@ -0,0 +1,76 @@
+package main.java.map.OperacoesBasicas;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ContactsList {
+
+ //Atributo
+ private Map contactMap;
+
+ public ContactsList() {
+ this.contactMap = new HashMap<>();
+ }
+
+ public void addContact(String name, Integer phone){
+ contactMap.put(name, phone);
+ }
+
+ public void removeContact (String name){
+ if(contactMap.isEmpty()){
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else{
+ contactMap.remove(name);
+ }
+ }
+
+ public void showContacts(){
+ if (contactMap.isEmpty()){
+ System.out.println("A lista está vazia: " + contactMap);
+ System.out.println("-----------------");
+ }
+ else {
+ System.out.println("Lista de contatos: " + contactMap);
+ System.out.println("------------");
+ }
+ }
+
+ public Integer searchByName(String name){
+ Integer numberByName = null;
+ if (contactMap.isEmpty()){
+ throw new IllegalStateException("A lista está vazia.");
+ }
+ else {
+ numberByName = contactMap.get(name);
+ System.out.println("Retornando númeto de telefone: " + numberByName);
+ return numberByName;
+ }
+
+
+ }
+
+ public static void main(String[] args) {
+
+ ContactsList contacts = new ContactsList();
+
+ contacts.showContacts();
+
+ contacts.addContact("Maria", 999990000);
+ contacts.addContact("Jonas", 99999808);
+ contacts.addContact("Mariana", 97997808);
+ contacts.addContact("Vinicius", 97797888);
+ contacts.addContact("Bárbara", 977977777);
+ contacts.addContact("Jonas", 90909090); // para verificar
+ contacts.addContact("José", 90909090); // para verificar
+
+ contacts.showContacts();
+
+ contacts.removeContact("Mariana");
+ contacts.showContacts();
+
+ contacts.searchByName("Maria");
+ }
+
+
+}
diff --git a/src/main/java/map/OperacoesBasicas/Dicionario.java b/src/main/java/map/OperacoesBasicas/Dicionario.java
deleted file mode 100644
index 5780cad..0000000
--- a/src/main/java/map/OperacoesBasicas/Dicionario.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package main.java.map.OperacoesBasicas;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class Dicionario {
- private Map dicionario;
-
- public Dicionario() {
- this.dicionario = new HashMap<>();
- }
-
- public void adicionarPalavra(String palavra, String definicao) {
- dicionario.put(palavra, definicao);
- }
-
- public void removerPalavra(String palavra) {
- if (!dicionario.isEmpty()) {
- dicionario.remove(palavra);
- } else {
- System.out.println("O dicionário está vazio.");
- }
- }
-
- public String pesquisarPorPalavra(String palavra) {
- String definicao = dicionario.get(palavra);
- if (definicao != null) {
- return definicao;
- }
- return "Linguagem não encontrada no dicionário.";
- }
-
- public void exibirPalavras() {
- if (!dicionario.isEmpty()) {
- System.out.println(dicionario);
- } else {
- System.out.println("O dicionário está vazio.");
- }
- }
-
- public static void main(String[] args) {
- Dicionario dicionario = new Dicionario();
-
- // 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.");
-
- // Exibir todas as palavras
- dicionario.exibirPalavras();
-
- // Pesquisar palavras
- String definicaoJava = dicionario.pesquisarPorPalavra("java");
- System.out.println("Definição da linguagem 'java': " + definicaoJava);
-
- String definicaoCSharp = dicionario.pesquisarPorPalavra("csharp");
- System.out.println(definicaoCSharp);
-
- // Remover uma palavra
- dicionario.removerPalavra("typescript");
- dicionario.exibirPalavras();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/map/OperacoesBasicas/Dictionary.java b/src/main/java/map/OperacoesBasicas/Dictionary.java
new file mode 100644
index 0000000..3ce53f4
--- /dev/null
+++ b/src/main/java/map/OperacoesBasicas/Dictionary.java
@@ -0,0 +1,94 @@
+package main.java.map.OperacoesBasicas;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Dictionary {
+ /*Crie uma classe chamada "Dicionario" que utilize um Map
+ para armazenar palavras e suas respectivas definições. Implemente os seguintes métodos:
+
+- `adicionarPalavra(String palavra, String definicao)`:
+Adiciona uma palavra e sua definição ao dicionário, associando a palavra
+à sua definição correspondente.
+- `removerPalavra(String palavra)`: Remove uma palavra do dicionário, dado o termo a ser removido.
+- `exibirPalavras()`: Exibe todas as palavras e suas definições do dicionário,
+mostrando cada palavra seguida de sua respectiva definição.
+- `pesquisarPorPalavra(String palavra)`: Pesquisa uma palavra no dicionário e
+retorna sua definição correspondente. */
+
+ private Map engPorDicitionary;
+
+ public Dictionary() {
+ this.engPorDicitionary = new HashMap<>();
+ }
+
+ // adiciona palavra
+ public void addWord (String word, String meaning){
+ engPorDicitionary.put(word, meaning);
+ }
+
+ // deleta palavra
+ public void removeWord(String word) {
+ if(!engPorDicitionary.isEmpty()) {
+ engPorDicitionary.remove(word);
+ }
+ else{
+ System.out.println("O dicionário está vazio");
+ System.out.println("-----------");
+ }
+ }
+
+ // exibir dicionário
+ public void showDictionary (){
+ if(!engPorDicitionary.isEmpty()) {
+ System.out.println("Exibindo o dicionário: " + engPorDicitionary);
+ System.out.println("-----------");
+ }
+ else{
+ System.out.println("O dicionário está vazio");
+ System.out.println("-----------");
+ }
+ }
+
+ // pesquisa por palavra
+ public String searchByWord (String word){
+ String wordAndDescrption = engPorDicitionary.get(word);
+ if(engPorDicitionary.isEmpty()) {
+ System.out.println("O dicionário está vazio");
+ System.out.println("-----------");
+ }
+ else{
+ if (wordAndDescrption != null){
+ System.out.println("Buscando a definição: " + wordAndDescrption);
+ return wordAndDescrption;
+ }
+ }
+ return "Palavra não encontrada no dicionário.";
+ }
+
+
+
+ public static void main(String[] args) {
+
+ Dictionary dictionary= new Dictionary();
+
+ dictionary.showDictionary();
+
+ dictionary.addWord("Throw", "Jogar Fora, arremessar");
+ dictionary.addWord("Have", "Ter, possuir ou verbo auxiliar do present perfect");
+ dictionary.addWord("Do", "Fazer ou verbo auxiliar do present simple");
+ dictionary.addWord("Did", "Fez (passado) ou verbo auxiliar do passado");
+ dictionary.addWord("Can", "Lata (refrigerante) ou verbo modal (poder, probabilidade, permissão)");
+
+ dictionary.showDictionary();
+
+ dictionary.removeWord("Throw");
+ dictionary.showDictionary();
+
+
+ dictionary.searchByWord("Can");
+
+ }
+
+
+}
From 3c7d67102126dcbf5aaf9b14717a5bcc838d34fd Mon Sep 17 00:00:00 2001
From: Blake
Date: Tue, 1 Jul 2025 19:06:58 -0300
Subject: [PATCH 10/11] 9th commit: map, search
---
.../java/map/Pesquisa/ContagemPalavras.java | 62 --------
.../java/map/Pesquisa/EstoqueProdutos.java | 100 -------------
src/main/java/map/Pesquisa/Product.java | 35 +++++
.../java/map/Pesquisa/ProductStorage.java | 138 ++++++++++++++++++
src/main/java/map/Pesquisa/Produto.java | 35 -----
src/main/java/map/Pesquisa/WordCount.java | 84 +++++++++++
6 files changed, 257 insertions(+), 197 deletions(-)
delete mode 100644 src/main/java/map/Pesquisa/ContagemPalavras.java
delete mode 100644 src/main/java/map/Pesquisa/EstoqueProdutos.java
create mode 100644 src/main/java/map/Pesquisa/Product.java
create mode 100644 src/main/java/map/Pesquisa/ProductStorage.java
delete mode 100644 src/main/java/map/Pesquisa/Produto.java
create mode 100644 src/main/java/map/Pesquisa/WordCount.java
diff --git a/src/main/java/map/Pesquisa/ContagemPalavras.java b/src/main/java/map/Pesquisa/ContagemPalavras.java
deleted file mode 100644
index 52de5b0..0000000
--- a/src/main/java/map/Pesquisa/ContagemPalavras.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package main.java.map.Pesquisa;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ContagemPalavras {
- //atributo
- private Map palavras;
-
- public ContagemPalavras() {
- this.palavras = new HashMap<>();
- }
-
- public void adicionarPalavras(String linguagem, Integer contagem) {
- palavras.put(linguagem, contagem);
- }
-
- public void removerPalavra(String palavra) {
- if (!palavras.isEmpty()) {
- palavras.remove(palavra);
- } else {
- System.out.println("O Map está vazio.");
- }
- }
-
- public int exibirContagemPalavras() {
- int contagemTotal = 0;
- for (int contagem : palavras.values()) {
- contagemTotal += contagem;
- }
- return contagemTotal;
- }
-
- public String encontrarPalavrasMaisFrequente() {
- String linguagemMaisFrequente = null;
- int maiorContagem = 0;
- for (Map.Entry entry : palavras.entrySet()) {
- if (entry.getValue() > maiorContagem) {
- maiorContagem = entry.getValue();
- linguagemMaisFrequente = entry.getKey();
- }
- }
- return linguagemMaisFrequente;
- }
-
- public static void main(String[] args) {
- ContagemPalavras contagemLinguagens = new ContagemPalavras();
-
- // Adiciona linguagens e suas contagens
- contagemLinguagens.adicionarPalavras("Java", 2);
- contagemLinguagens.adicionarPalavras("Python", 8);
- contagemLinguagens.adicionarPalavras("JavaScript", 1);
- contagemLinguagens.adicionarPalavras("C#", 6);
-
- // Exibe a contagem total de linguagens
- System.out.println("Existem " + contagemLinguagens.exibirContagemPalavras() + " palavras.");
-
- // Encontra e exibe a linguagem mais frequente
- String linguagemMaisFrequente = contagemLinguagens.encontrarPalavrasMaisFrequente();
- System.out.println("A linguagem mais frequente é: " + linguagemMaisFrequente);
- }
-}
diff --git a/src/main/java/map/Pesquisa/EstoqueProdutos.java b/src/main/java/map/Pesquisa/EstoqueProdutos.java
deleted file mode 100644
index b8561d4..0000000
--- a/src/main/java/map/Pesquisa/EstoqueProdutos.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package main.java.map.Pesquisa;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class EstoqueProdutos {
- private Map estoqueProdutosMap;
-
- public EstoqueProdutos() {
- this.estoqueProdutosMap = new HashMap<>();
- }
-
- public void adicionarProduto(long cod, String nome, int quantidade, double preco) {
- estoqueProdutosMap.put(cod, new Produto(nome, preco, quantidade));
- }
-
- public void exibirProdutos() {
- System.out.println(estoqueProdutosMap);
- }
-
- public double calcularValorTotalEstoque() {
- double valorTotalEstoque = 0d;
- if (!estoqueProdutosMap.isEmpty()) {
- for (Produto p : estoqueProdutosMap.values()) {
- valorTotalEstoque += p.getQuantidade() * p.getPreco();
- }
- }
- return valorTotalEstoque;
- }
-
- public Produto obterProdutoMaisCaro() {
- Produto produtoMaisCaro = null;
- double maiorPreco = Double.MIN_VALUE;
- for (Produto p : estoqueProdutosMap.values()) {
- if (p.getPreco() > maiorPreco) {
- produtoMaisCaro = p;
- maiorPreco = p.getPreco();
- }
- }
- return produtoMaisCaro;
- }
-
- public Produto obterProdutoMaisBarato() {
- Produto produtoMaisBarato = null;
- double menorPreco = Double.MAX_VALUE;
- for (Produto p : estoqueProdutosMap.values()) {
- if (p.getPreco() < menorPreco) {
- produtoMaisBarato = p;
- menorPreco = p.getPreco();
- }
- }
- return produtoMaisBarato;
- }
-
- public Produto obterProdutoMaiorQuantidadeValorTotalNoEstoque() {
- Produto produtoMaiorQuantidadeValorNoEstoque = null;
- double maiorValorTotalProdutoEstoque = 0d;
- if (!estoqueProdutosMap.isEmpty()) {
- for (Map.Entry entry : estoqueProdutosMap.entrySet()) {
- double valorProdutoEmEstoque = entry.getValue().getPreco() * entry.getValue().getQuantidade();
- if (valorProdutoEmEstoque > maiorValorTotalProdutoEstoque) {
- maiorValorTotalProdutoEstoque = valorProdutoEmEstoque;
- produtoMaiorQuantidadeValorNoEstoque = entry.getValue();
- }
- }
- }
- return produtoMaiorQuantidadeValorNoEstoque;
- }
-
- public static void main(String[] args) {
- EstoqueProdutos estoque = new EstoqueProdutos();
-
- // Exibe o estoque vazio
- estoque.exibirProdutos();
-
- // Adiciona produtos ao estoque
- estoque.adicionarProduto(1L, "Notebook", 1, 1500.0);
- estoque.adicionarProduto(2L, "Mouse", 5, 25.0);
- estoque.adicionarProduto(3L, "Monitor", 10, 400.0);
- estoque.adicionarProduto(4L, "Teclado", 2, 40.0);
-
- // Exibe os produtos no estoque
- estoque.exibirProdutos();
-
- // Calcula e exibe o valor total do estoque
- System.out.println("Valor total do estoque: R$" + estoque.calcularValorTotalEstoque());
-
- // Obtém e exibe o produto mais caro
- Produto produtoMaisCaro = estoque.obterProdutoMaisCaro();
- System.out.println("Produto mais caro: " + produtoMaisCaro);
-
- // Obtém e exibe o produto mais barato
- Produto produtoMaisBarato = estoque.obterProdutoMaisBarato();
- System.out.println("Produto 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);
- }
-}
diff --git a/src/main/java/map/Pesquisa/Product.java b/src/main/java/map/Pesquisa/Product.java
new file mode 100644
index 0000000..a5dbfec
--- /dev/null
+++ b/src/main/java/map/Pesquisa/Product.java
@@ -0,0 +1,35 @@
+package main.java.map.Pesquisa;
+
+public class Product {
+ // Cada produto possui atributos como nome, cod, preço e quantidade.
+ private String name;
+
+ private double price;
+ private int quantity;
+
+ // Construtor
+ public Product(String name, double price, int quantity) {
+ this.name = name;
+
+ this.price = price;
+ this.quantity = quantity;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+
+ public double getPrice() {
+ return price;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[Nome: %s | Preço (R$): %.2f | Quantidade: %d ]", name, price, quantity);
+ }
+}
diff --git a/src/main/java/map/Pesquisa/ProductStorage.java b/src/main/java/map/Pesquisa/ProductStorage.java
new file mode 100644
index 0000000..d27f928
--- /dev/null
+++ b/src/main/java/map/Pesquisa/ProductStorage.java
@@ -0,0 +1,138 @@
+package main.java.map.Pesquisa;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ProductStorage {
+
+ private Map productsInStorage;
+
+ public ProductStorage() {
+ this.productsInStorage = new HashMap<>();
+ }
+
+ // métodos
+ //adicionar Produto
+ public void addProduct (long code, String name, int quantity, double price){
+ productsInStorage.put(code, new Product(name, price, quantity));
+ }
+
+ // exibir produtos
+ public void showProducts(){
+ if (productsInStorage.isEmpty()){
+ System.out.println("Estoque está vazio");
+ System.out.println("-----------");
+
+ }
+ else {
+ System.out.println("Lista de Produtos: " + productsInStorage);
+ System.out.println("-----------");
+ }
+ }
+
+ // tootal no estoque
+ public double storageTotal(){
+ double totalStorageValue = 0d; // variavel para armazenar o valor total
+ if(!productsInStorage.isEmpty()){
+ for (Product p : productsInStorage.values()) { // para pegar apenas os valores desejados
+ totalStorageValue += p.getQuantity() * p.getPrice();
+ }
+ }
+ System.out.printf("Total em estoque: R$ %.2f", totalStorageValue);
+ return totalStorageValue;
+ }
+
+ public Product getExpensiveProduct(){
+ Product expensiveProduct = null;
+ double expensiveValue = Double.MIN_VALUE;
+ if (!productsInStorage.isEmpty()){
+ for(Product e : productsInStorage.values()){
+ if(e.getPrice() > expensiveValue ){
+ expensiveProduct = e;
+ expensiveValue = e.getPrice();
+
+ }
+
+ }
+
+ }
+ System.out.println("Produto mais caro: " + expensiveProduct);
+ return expensiveProduct;
+
+ }
+
+
+ public Product getTheCheapestProduct (){
+ Product cheapestProduct = null;
+ double cheapestValue = Double.MAX_VALUE;
+ if (!productsInStorage.isEmpty()){
+ for(Product c : productsInStorage.values()){
+ if(c.getPrice() < cheapestValue ){
+ cheapestProduct = c;
+ cheapestValue = c.getPrice();
+
+ }
+
+ }
+
+ }
+ System.out.println("Produto mais barato: " + cheapestProduct);
+ return cheapestProduct;
+
+
+ }
+
+
+ // maior produto em estoque
+ public Product getMajorQuantityProduct() {
+ Product productMajor = null;
+ double totalPrice = 0d;
+
+
+ if (!productsInStorage.isEmpty()){
+ for(Product t : productsInStorage.values()){ // para pegar apenas os valores desejados
+ if(t.getQuantity() * t.getPrice() > totalPrice){ // verifica se o produto é maior que o totalPrice
+ totalPrice = t.getQuantity() * t.getPrice(); // calcula o totalPrice
+ productMajor = t; // atribui o produto ao productMajor
+
+ }
+
+ }
+
+ }
+ System.out.printf("Produto com mais quantidade: %s | -> Preço Total R$: %.2f", productMajor, totalPrice);
+
+ System.out.println(" ");
+ System.out.println("--------------------");
+ return productMajor;
+
+ }
+
+
+
+
+ public static void main(String[] args) {
+
+ ProductStorage products = new ProductStorage();
+
+ products.showProducts();
+ System.out.println("Adicionando produtos...");
+ products.addProduct(1, "Arroz", 3, 30.00);
+ products.addProduct(2, "Feijão", 3, 15.00); // para testar
+ products.addProduct(2, "Feijão", 6, 15.00);
+ products.addProduct(3, "Broa de Milho", 10, 12.00);
+ products.addProduct(4, "Ovos", 30, 29.00);
+ products.addProduct(5, "Iogurte", 15, 10.00);
+ products.addProduct(6, "Sal", 1, 2.00);
+
+ products.showProducts();
+
+
+ products.getExpensiveProduct();
+ products.getTheCheapestProduct();
+ products.getMajorQuantityProduct();
+ products.storageTotal();
+
+
+ }
+}
diff --git a/src/main/java/map/Pesquisa/Produto.java b/src/main/java/map/Pesquisa/Produto.java
deleted file mode 100644
index ebc2031..0000000
--- a/src/main/java/map/Pesquisa/Produto.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package main.java.map.Pesquisa;
-
-public class Produto {
- //atributos
- private String nome;
- private double preco;
- private int quantidade;
-
- public Produto(String nome, double preco, int quantidade) {
- this.nome = nome;
- this.preco = preco;
- this.quantidade = quantidade;
- }
-
- public String getNome() {
- return nome;
- }
-
- public double getPreco() {
- return preco;
- }
-
- public int getQuantidade() {
- return quantidade;
- }
-
- @Override
- public String toString() {
- return "Produto{" +
- "nome='" + nome + '\'' +
- ", preco=" + preco +
- ", quantidade=" + quantidade +
- '}';
- }
-}
diff --git a/src/main/java/map/Pesquisa/WordCount.java b/src/main/java/map/Pesquisa/WordCount.java
new file mode 100644
index 0000000..9c43df8
--- /dev/null
+++ b/src/main/java/map/Pesquisa/WordCount.java
@@ -0,0 +1,84 @@
+package main.java.map.Pesquisa;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class WordCount {
+
+
+
+ private Map wordCount;
+
+ // construtor
+ public WordCount() {
+ this.wordCount = new HashMap<>();
+ }
+
+
+ // adicionar palavra
+ public void addWord(String word, Integer count){
+ wordCount.put(word, count);
+ }
+
+ // contagem de palavras
+ public void showWordCount(){
+ if(!wordCount.isEmpty()){
+ System.out.println("Contagem de palavras: " + wordCount);
+ }
+ else{
+ System.out.println("A lista está vazia");
+ }
+ }
+
+ //remover palavras
+ public void removeWord(String word){
+ if(!wordCount.isEmpty()){
+ System.out.println("Removendo palavra...");
+ wordCount.remove(word);
+ }
+ else{
+ System.out.println("A lista está vazia");
+ }
+
+
+ }
+ //encontrarPalavraMaisFrequente()
+ public String wordFrequency(){
+ String wordString = null;
+ int bigNumber = 0;
+
+ if (!wordCount.isEmpty()) {
+ for (String w : wordCount.keySet()){ // .keySet() retorna um conjunto de chaves (palavras) do mapa
+ if(wordCount.get(w) > bigNumber){ //.get(w) retorna o valor inteiro associado à palavra
+ wordString = w;
+ bigNumber = wordCount.get(w);
+ }
+
+ }
+ }
+ System.out.printf("Palavra com maior contagem: " + wordString + " | Número: " + bigNumber);
+ return wordString;
+ }
+
+
+ public static void main(String[] args) {
+
+ WordCount count = new WordCount();
+
+ count.showWordCount();
+
+ count.addWord("C",1);
+ count.addWord("Java",2);
+ count.addWord("Python",3);
+ count.addWord("JavaScript",6);
+ count.addWord("C#",4);
+ count.addWord("Assembly", 5);
+ count.addWord("Ruby", 9);
+
+ count.showWordCount();
+ count.removeWord("Assembly");
+ count.showWordCount();
+ count.wordFrequency();
+ }
+
+}
From f054f2c486abb78678c17bea0d0a2a0a393b103c Mon Sep 17 00:00:00 2001
From: Blake
Date: Wed, 2 Jul 2025 00:41:34 -0300
Subject: [PATCH 11/11] 10th commit: map, order + fixed issues
---
.../java/map/Ordenacao/AgendaEventos.java | 62 --------
src/main/java/map/Ordenacao/Book.java | 56 +++++++
src/main/java/map/Ordenacao/Event.java | 34 +++++
.../java/map/Ordenacao/EventSchedule.java | 63 ++++++++
src/main/java/map/Ordenacao/Evento.java | 28 ----
.../java/map/Ordenacao/LivrariaOnline.java | 144 ------------------
src/main/java/map/Ordenacao/Livro.java | 51 -------
.../java/map/Ordenacao/OnlineBookstore.java | 143 +++++++++++++++++
.../java/map/Pesquisa/ProductStorage.java | 6 +-
9 files changed, 299 insertions(+), 288 deletions(-)
delete mode 100644 src/main/java/map/Ordenacao/AgendaEventos.java
create mode 100644 src/main/java/map/Ordenacao/Book.java
create mode 100644 src/main/java/map/Ordenacao/Event.java
create mode 100644 src/main/java/map/Ordenacao/EventSchedule.java
delete mode 100644 src/main/java/map/Ordenacao/Evento.java
delete mode 100644 src/main/java/map/Ordenacao/LivrariaOnline.java
delete mode 100644 src/main/java/map/Ordenacao/Livro.java
create mode 100644 src/main/java/map/Ordenacao/OnlineBookstore.java
diff --git a/src/main/java/map/Ordenacao/AgendaEventos.java b/src/main/java/map/Ordenacao/AgendaEventos.java
deleted file mode 100644
index 77463aa..0000000
--- a/src/main/java/map/Ordenacao/AgendaEventos.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package main.java.map.Ordenacao;
-
-import java.time.LocalDate;
-import java.time.Month;
-import java.util.*;
-
-public class AgendaEventos {
- private Map eventosMap;
-
- public AgendaEventos() {
- this.eventosMap = new HashMap<>();
- }
-
- public void adicionarEvento(LocalDate data, String nomeEvento, String descricaoAtracao) {
- eventosMap.put(data, new Evento(nomeEvento, descricaoAtracao));
- }
-
- public void exibirAgenda() {
- Map eventosTreeMap = new TreeMap<>(eventosMap);
- for (Map.Entry entry : eventosTreeMap.entrySet()) {
- LocalDate dataEvento = entry.getKey();
- Evento evento = entry.getValue();
- System.out.println("Data: " + dataEvento + ", Evento: " + evento.getNome() + ", Atração: " + evento.getAtracao());
- }
- }
-
- public void obterProximoEvento() {
- LocalDate dataAtual = LocalDate.now();
- LocalDate proximaData = null;
- Evento proximoEvento = null;
- for (Map.Entry entry : eventosMap.entrySet()) {
- LocalDate dataEvento = entry.getKey();
- if (dataEvento.isEqual(dataAtual) || dataEvento.isAfter(dataAtual)) {
- proximaData = dataEvento;
- proximoEvento = entry.getValue();
- break;
- }
- }
- if (proximoEvento != null) {
- System.out.println("O próximo evento: " + proximoEvento.getNome() + " acontecerá na data " + proximaData);
- } else {
- System.out.println("Não há eventos futuros na agenda.");
- }
- }
-
- public static void main(String[] args) {
- AgendaEventos agendaEventos = new AgendaEventos();
-
- // Adiciona eventos à agenda
- agendaEventos.adicionarEvento(LocalDate.of(2022, Month.JULY, 15), "Conferência de Tecnologia", "Palestrante renomado");
- agendaEventos.adicionarEvento(LocalDate.of(2022, 7, 9), "Workshop de Programação", "Aula prática de desenvolvimento");
- agendaEventos.adicionarEvento(LocalDate.of(2000, 1, 10), "Lançamento de Software", "Demonstração da nova versão");
- agendaEventos.adicionarEvento(LocalDate.of(2023, Month.AUGUST, 28), "Hackathon de Inovação", "Competição de soluções criativas");
- agendaEventos.adicionarEvento(LocalDate.of(2024, 9, 20), "Seminário de Inteligência Artificial", "Discussão sobre IA avançada");
-
- // Exibe a agenda completa de eventos
- agendaEventos.exibirAgenda();
-
- // Obtém e exibe o próximo evento na agenda
- agendaEventos.obterProximoEvento();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/map/Ordenacao/Book.java b/src/main/java/map/Ordenacao/Book.java
new file mode 100644
index 0000000..884452c
--- /dev/null
+++ b/src/main/java/map/Ordenacao/Book.java
@@ -0,0 +1,56 @@
+package main.java.map.Ordenacao;
+
+import java.util.Comparator;
+
+
+
+public class Book implements Comparable {
+
+ // A classe "Livro" possui atributos como título, autor e preço.
+ private String title;
+ private String author;
+ private double price;
+
+ // Construtor
+ public Book(String title, String author, double price) {
+ this.title = title;
+ this.author = author;
+ this.price = price;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getAuthor() {
+ return author;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[Título: %s | Autor(a): %s | Preço (R$): %.2f ]", title, author, price);
+ }
+
+ @Override
+ public int compareTo(Book book) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'compareTo'");
+ }
+
+ public static class ComparatorByPrice implements Comparator{
+
+ @Override
+ public int compare(Book price1, Book price2) {
+ return Double.compare(price1.getPrice(), price2.getPrice());
+
+
+ }
+
+ }
+
+
+}
diff --git a/src/main/java/map/Ordenacao/Event.java b/src/main/java/map/Ordenacao/Event.java
new file mode 100644
index 0000000..80382be
--- /dev/null
+++ b/src/main/java/map/Ordenacao/Event.java
@@ -0,0 +1,34 @@
+package main.java.map.Ordenacao;
+
+public class Event {
+
+ private String name;
+ private String attraction;
+
+
+ public Event(String name, String attraction) {
+ this.name = name;
+ this.attraction = attraction;
+ }
+
+
+ public String getName() {
+ return name;
+ }
+
+
+ public String getAttraction() {
+ return attraction;
+ }
+
+
+ @Override
+ public String toString() {
+ return " | Nome do Evento -> " + name + " | Atração -> " + attraction + " | ";
+ }
+
+
+
+
+
+}
diff --git a/src/main/java/map/Ordenacao/EventSchedule.java b/src/main/java/map/Ordenacao/EventSchedule.java
new file mode 100644
index 0000000..59faf27
--- /dev/null
+++ b/src/main/java/map/Ordenacao/EventSchedule.java
@@ -0,0 +1,63 @@
+package main.java.map.Ordenacao;
+
+import java.time.LocalDate;
+import java.time.Month;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class EventSchedule {
+
+ private Map events;
+
+ public EventSchedule() {
+ this.events = new HashMap<>();
+ }
+
+ // métodos
+ //Adiciona um evento à agenda.
+ public void addEvent(LocalDate date, String name, String atraction){
+ events.put(date, new Event(name, atraction));
+
+ }
+
+
+
+ // exibirAgenda()`: Exibe a agenda de eventos em ordem crescente de data.
+ public void showSchedule(){
+ Map eventByDate = new TreeMap<>(events);
+ System.out.println("Eventos: " + eventByDate);
+ System.out.println("------------------");
+
+ }
+
+ public void nextEvent() {
+ LocalDate today = LocalDate.now();
+ Map nextEvent = new TreeMap<>(events);
+ for (var entry : nextEvent.entrySet()) { // var entry: percorre o mapa, no caso var é o tipo de dado que é uma entrada do mapa, ou seja, uma data e um evento.
+ if (!entry.getKey().isBefore(today)) { //getKey: pega a chave que é a data
+ System.out.println("Próximo evento: " + entry.getKey() + entry.getValue());
+ System.out.println("---------");
+ return;
+ }
+ }
+ System.out.println("Nenhum evento futuro encontrado.");
+ System.out.println("---------");
+}
+
+
+
+ public static void main(String[] args) {
+
+ EventSchedule eventsList = new EventSchedule();
+
+ eventsList.addEvent(LocalDate.of(2025, Month.JULY, 15), "Conferência de Tecnologia parte 2", "Mudanças na Inteligência Artificial");
+ eventsList.addEvent(LocalDate.of(2025, Month.AUGUST, 12), "Workshop de Tecnologia" ,"Aula prática de desenvolvimento");
+ eventsList.addEvent(LocalDate.of(2025, Month.JULY, 10), "Lançamento de software", "Software novo que possui IA integrada");
+ eventsList.addEvent(LocalDate.of(2025, Month.AUGUST, 1), "Seminário de Inteligência Artificial" ,"O futuro da IA");
+ eventsList.addEvent(LocalDate.of(2025, Month.JUNE, 1), "Conferência de Tecnologia parte 1" ,"IA no setor da Saúde");
+
+ eventsList.showSchedule();
+ eventsList.nextEvent();
+ }
+}
diff --git a/src/main/java/map/Ordenacao/Evento.java b/src/main/java/map/Ordenacao/Evento.java
deleted file mode 100644
index 71148ce..0000000
--- a/src/main/java/map/Ordenacao/Evento.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package main.java.map.Ordenacao;
-
-public class Evento {
- //atributos
- private String nome;
- private String atracao;
-
- public Evento(String nome, String atracao) {
- this.nome = nome;
- this.atracao = atracao;
- }
-
- public String getNome() {
- return nome;
- }
-
- public String getAtracao() {
- return atracao;
- }
-
- @Override
- public String toString() {
- return "Evento{" +
- "nome='" + nome + '\'' +
- ", atracao=" + atracao +
- '}';
- }
-}
diff --git a/src/main/java/map/Ordenacao/LivrariaOnline.java b/src/main/java/map/Ordenacao/LivrariaOnline.java
deleted file mode 100644
index b7db94b..0000000
--- a/src/main/java/map/Ordenacao/LivrariaOnline.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package main.java.map.Ordenacao;
-
-import java.util.*;
-
-public class LivrariaOnline {
- private Map livros;
-
- public LivrariaOnline() {
- this.livros = new HashMap<>();
- }
-
- public void adicionarLivro(String link, Livro livro) {
- livros.put(link, livro);
- }
-
- public void removerLivro(String titulo) {
- List chavesRemover = new ArrayList<>();
- for (Map.Entry entry : livros.entrySet()) {
- if (entry.getValue().getTitulo().equalsIgnoreCase(titulo)) {
- chavesRemover.add(entry.getKey());
- }
- }
- for (String chave : chavesRemover) {
- livros.remove(chave);
- }
- }
-
- public Map exibirLivrosOrdenadosPorPreco() {
- List> livrosParaOrdenarPorPreco = new ArrayList<>(livros.entrySet());
-
- Collections.sort(livrosParaOrdenarPorPreco, new ComparatorPorPreco());
-
- Map livrosOrdenadosPorPreco = new LinkedHashMap<>();
-
- for (Map.Entry entry : livrosParaOrdenarPorPreco) {
- livrosOrdenadosPorPreco.put(entry.getKey(), entry.getValue());
- }
-
- return livrosOrdenadosPorPreco;
- }
-
- public Map exibirLivrosOrdenadosPorAutor() {
- List> livrosParaOrdenarPorAutor = new ArrayList<>(livros.entrySet());
-
- Collections.sort(livrosParaOrdenarPorAutor, new ComparatorPorAutor());
-
- Map livrosOrdenadosPorAutor = new LinkedHashMap<>();
-
- for (Map.Entry entry : livrosParaOrdenarPorAutor) {
- livrosOrdenadosPorAutor.put(entry.getKey(), entry.getValue());
- }
-
- return livrosOrdenadosPorAutor;
- }
-
- public Map pesquisarLivrosPorAutor(String autor) {
- Map livrosPorAutor = new LinkedHashMap<>();
- for (Map.Entry entry : livros.entrySet()) {
- Livro livro = entry.getValue();
- if (livro.getAutor().equals(autor)) {
- livrosPorAutor.put(entry.getKey(), livro);
- }
- }
- return livrosPorAutor;
- }
-
- public List obterLivroMaisCaro() {
- List livrosMaisCaros = new ArrayList<>();
- double precoMaisAlto = Double.MIN_VALUE;
-
- if (!livros.isEmpty()) {
- for (Livro livro : livros.values()) {
- if (livro.getPreco() > precoMaisAlto) {
- precoMaisAlto = livro.getPreco();
- }
- }
- } else {
- throw new NoSuchElementException("A livraria está vazia!");
- }
-
- for(Map.Entry entry: livros.entrySet()) {
- if(entry.getValue().getPreco() == precoMaisAlto) {
- Livro livroComPrecoMaisAlto = livros.get(entry.getKey());
- livrosMaisCaros.add(livroComPrecoMaisAlto);
- }
- }
- return livrosMaisCaros;
- }
-
- public List obterLivroMaisBarato() {
- List livrosMaisBaratos = new ArrayList<>();
- double precoMaisBaixo = Double.MAX_VALUE;
-
- if (!livros.isEmpty()) {
- for (Livro livro : livros.values()) {
- if (livro.getPreco() < precoMaisBaixo) {
- precoMaisBaixo = livro.getPreco();
- }
- }
- } else {
- throw new NoSuchElementException("A livraria está vazia!");
- }
-
- for(Map.Entry entry: livros.entrySet()) {
- if(entry.getValue().getPreco() == precoMaisBaixo) {
- Livro livroComPrecoMaisBaixo = livros.get(entry.getKey());
- livrosMaisBaratos.add(livroComPrecoMaisBaixo);
- }
- }
- return livrosMaisBaratos;
- }
-
- public static void main(String[] args) {
- LivrariaOnline livrariaOnline = new LivrariaOnline();
- // Adiciona os livros à livraria online
- livrariaOnline.adicionarLivro("https://amzn.to/3EclT8Z", new Livro("1984", "George Orwell", 50d));
- livrariaOnline.adicionarLivro("https://amzn.to/47Umiun", new Livro("A Revolução dos Bichos", "George Orwell", 7.05d));
- livrariaOnline.adicionarLivro("https://amzn.to/3L1FFI6", new Livro("Caixa de Pássaros - Bird Box: Não Abra os Olhos", "Josh Malerman", 19.99d));
- livrariaOnline.adicionarLivro("https://amzn.to/3OYb9jk", new Livro("Malorie", "Josh Malerman", 5d));
- livrariaOnline.adicionarLivro("https://amzn.to/45HQE1L", new Livro("E Não Sobrou Nenhum", "Agatha Christie", 50d));
- livrariaOnline.adicionarLivro("https://amzn.to/45u86q4", new Livro("Assassinato no Expresso do Oriente", "Agatha Christie", 5d));
-
- // Exibe todos os livros ordenados por preço
- System.out.println("Livros ordenados por preço: \n" + livrariaOnline.exibirLivrosOrdenadosPorPreco());
-
- //Exibe todos os livros ordenados por autor
- System.out.println("Livros ordenados por autor: \n" + livrariaOnline.exibirLivrosOrdenadosPorAutor());
-
- // Pesquisa livros por autor
- String autorPesquisa = "Josh Malerman";
- livrariaOnline.pesquisarLivrosPorAutor(autorPesquisa);
-
- // Obtém e exibe o livro mais caro
- System.out.println("Livro mais caro: " + livrariaOnline.obterLivroMaisCaro());
-
- // Obtém e exibe o livro mais barato
- System.out.println("Livro mais barato: " + livrariaOnline.obterLivroMaisBarato());
-
- // Remover um livro pelo título
- livrariaOnline.removerLivro("1984");
- System.out.println(livrariaOnline.livros);
-
- }
-}
diff --git a/src/main/java/map/Ordenacao/Livro.java b/src/main/java/map/Ordenacao/Livro.java
deleted file mode 100644
index b1e45bb..0000000
--- a/src/main/java/map/Ordenacao/Livro.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package main.java.map.Ordenacao;
-
-import java.util.Comparator;
-import java.util.Map;
-
-public class Livro {
- private String titulo;
- private String autor;
- private double preco;
-
- public Livro(String titulo, String autor, double preco) {
- this.titulo = titulo;
- this.autor = autor;
- this.preco = preco;
- }
-
- public String getTitulo() {
- return titulo;
- }
-
- public String getAutor() {
- return autor;
- }
-
- public double getPreco() {
- return preco;
- }
-
- @Override
- public String toString() {
- return "Livro{" +
- "titulo='" + titulo + '\'' +
- ", autor='" + autor + '\'' +
- ", preco=" + preco +
- '}';
- }
-}
-
-class ComparatorPorPreco implements Comparator> {
- @Override
- public int compare(Map.Entry l1, Map.Entry l2) {
- return Double.compare(l1.getValue().getPreco(), l2.getValue().getPreco());
- }
-}
-
-class ComparatorPorAutor implements Comparator> {
- @Override
- public int compare(Map.Entry l1, Map.Entry l2) {
- return l1.getValue().getAutor().compareToIgnoreCase(l2.getValue().getAutor());
- }
-}
diff --git a/src/main/java/map/Ordenacao/OnlineBookstore.java b/src/main/java/map/Ordenacao/OnlineBookstore.java
new file mode 100644
index 0000000..3c7c878
--- /dev/null
+++ b/src/main/java/map/Ordenacao/OnlineBookstore.java
@@ -0,0 +1,143 @@
+package main.java.map.Ordenacao;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+
+public class OnlineBookstore {
+
+
+
+ private Map bookList;
+
+ // contrutor
+ public OnlineBookstore() {
+ this.bookList = new HashMap<>();
+ }
+
+ // métodos
+ public void addBook(String link, Book book){
+ bookList.put(link, book);
+
+ }
+
+ public void removeBook (String title) {
+ if (!bookList.isEmpty()) {
+ bookList.remove(title);
+ }
+ }
+
+ // livros por preço
+ public void showBooksByPrice() {
+ if (!bookList.isEmpty()) {
+ List booksPrice = new ArrayList<>(bookList.values());
+ booksPrice.sort(new Book.ComparatorByPrice());
+
+ System.out.println("Livros ordenados por preço:");
+ for (Book book : booksPrice) {
+ System.out.println(book);
+ }
+ System.out.println("---------");
+ }
+ }
+
+ // livros por autor
+ public List showByAuthor(String author) {
+ List booksByAuthor = new ArrayList<>();
+ boolean bookFound = false;
+
+ for (Book b : bookList.values()) { // percorre o map
+ if (b.getAuthor().equalsIgnoreCase(author)) { // verifica se o autor é igual ao informado
+ booksByAuthor.add(b); // adiciona o livro à lista
+ bookFound = true; // marca que encontrou pelo menos um livro do autor e vai para o próximo if
+ }
+ }
+
+ if (bookFound) {
+ System.out.println("Livros por: " + author); // exibe o autor
+ for (Book b : booksByAuthor) { // percorre a lista de livros do autor
+ System.out.printf("- %s (R$ %.2f)\n", b.getTitle(), b.getPrice()); // exibe o título e o preço do livro
+ }
+ } else {
+ System.out.println("Nenhum livro encontrado para o autor: " + author);
+ }
+
+ return booksByAuthor;
+ }
+
+ public Book getExpensiveBook(){
+ Book expensiveBook = null;
+ double expensiveValue = Double.MIN_VALUE;
+ if (!bookList.isEmpty()){
+ for (Book bookE : bookList.values()){
+ if (bookE.getPrice() > expensiveValue) {
+ expensiveBook = bookE;
+ expensiveValue = bookE.getPrice();
+ }
+ }
+ }
+ System.out.println("------------");
+ System.out.println("Livro mais caro: " + expensiveBook);
+ return expensiveBook;
+ }
+
+
+ public Book getCheapestBook(){
+ Book cheapBook = null;
+ double cheapValue = Double.MAX_VALUE;
+ if (!bookList.isEmpty()){
+ for (Book bookC : bookList.values()){
+ if (bookC.getPrice() < cheapValue) {
+ cheapBook = bookC;
+ cheapValue = bookC.getPrice();
+ }
+ }
+ }
+ System.out.println("------------");
+ System.out.println("Livro mais barato: " + cheapBook);
+ return cheapBook;
+ }
+
+
+
+
+
+ public static void main(String[] args) {
+
+ OnlineBookstore books = new OnlineBookstore();
+
+
+ books.addBook("https://amzn.to/3EclT8Z", new Book("1984", "George Orwell", 50d));
+ books.addBook("https://amzn.to/3YxHc6A", new Book("Admirável Mundo Novo", "Aldous Huxley", 45.5));
+ books.addBook("https://amzn.to/3YeJK6O", new Book("O Conto da Aia", "Margaret Atwood", 60d));
+ books.addBook("https://amzn.to/3Rnc2ME", new Book("Fahrenheit 451", "Ray Bradbury", 38.9));
+ books.addBook("https://amzn.to/3KednAa", new Book("Laranja Mecânica", "Anthony Burgess", 42d));
+ books.addBook("https://amzn.to/3KcZ9Ld", new Book("Ensaio Sobre a Cegueira", "José Saramago", 54d));
+ books.addBook("https://amzn.to/3Reu1iG", new Book("O Hobbit", "J.R.R. Tolkien", 70.0));
+ books.addBook("https://amzn.to/3X3TItM", new Book("O Senhor dos Anéis: A Sociedade do Anel", "J.R.R. Tolkien", 90.0));
+ books.addBook("https://amzn.to/3X1OGbR", new Book("O Senhor dos Anéis: As Duas Torres", "J.R.R. Tolkien", 95.0));
+ books.addBook("https://amzn.to/3Rg7hM7", new Book("O Senhor dos Anéis: O Retorno do Rei", "J.R.R. Tolkien", 100.0));
+ books.addBook("https://amzn.to/3X2T39C", new Book("O Silmarillion", "J.R.R. Tolkien", 85.5));
+ books.addBook("https://amzn.to/3ReuYg8", new Book("Contos Inacabados", "J.R.R. Tolkien", 78.0));
+ books.addBook("https://amzn.to/3X5I9Lk", new Book("Beren e Lúthien", "J.R.R. Tolkien", 74.5));
+ books.addBook("https://amzn.to/3X4FHJq", new Book("A Queda de Gondolin", "J.R.R. Tolkien", 79.9));
+
+
+ books.showBooksByPrice();
+ System.out.println("------------");
+
+ books.showByAuthor("J.R.R. Tolkien");
+ books.getExpensiveBook();
+ books.getCheapestBook();
+
+ }
+
+
+}
+
+
+
+
diff --git a/src/main/java/map/Pesquisa/ProductStorage.java b/src/main/java/map/Pesquisa/ProductStorage.java
index d27f928..49c34b3 100644
--- a/src/main/java/map/Pesquisa/ProductStorage.java
+++ b/src/main/java/map/Pesquisa/ProductStorage.java
@@ -30,7 +30,7 @@ public void showProducts(){
}
}
- // tootal no estoque
+ // total no estoque
public double storageTotal(){
double totalStorageValue = 0d; // variavel para armazenar o valor total
if(!productsInStorage.isEmpty()){
@@ -44,7 +44,7 @@ public double storageTotal(){
public Product getExpensiveProduct(){
Product expensiveProduct = null;
- double expensiveValue = Double.MIN_VALUE;
+ double expensiveValue = Double.MIN_VALUE; // Se quero achar o mais caro, começo com o menor valor possível.
if (!productsInStorage.isEmpty()){
for(Product e : productsInStorage.values()){
if(e.getPrice() > expensiveValue ){
@@ -64,7 +64,7 @@ public Product getExpensiveProduct(){
public Product getTheCheapestProduct (){
Product cheapestProduct = null;
- double cheapestValue = Double.MAX_VALUE;
+ double cheapestValue = Double.MAX_VALUE; // Se quero achar o mais barato, começo com o maior valor possível.
if (!productsInStorage.isEmpty()){
for(Product c : productsInStorage.values()){
if(c.getPrice() < cheapestValue ){