Skip to content

Commit

Permalink
Corrigindo e implementando a solução do exercício LivrariaOnline
Browse files Browse the repository at this point in the history
Signed-off-by: Camila Cavalcante <[email protected]>
  • Loading branch information
cami-la committed Sep 11, 2023
1 parent 03f3a56 commit 7e6a9ea
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 20 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Exercícios:
<p>Crie uma classe chamada "ConjuntoConvidados" que possui um conjunto de objetos do tipo "Convidado" como atributo. Cada convidado possui atributos como nome e código do convite. Implemente os seguintes métodos:

- `adicionarConvidado(String nome, int codigoConvite)`: Adiciona um convidado ao conjunto.
- `removerConvidadoPorCodigoConvite(String codigoConvite)`: Remove um convidado do conjunto com base no código do convite.
- `removerConvidadoPorCodigoConvite(int codigoConvite)`: Remove um convidado do conjunto com base no código do convite.
- `contarConvidados()`: Conta o número total de convidados no Set.
- `exibirConvidados()`: Exibe todos os convidados do conjunto.
</p>
Expand Down Expand Up @@ -114,4 +114,4 @@ Crie uma classe chamada "GerenciadorAlunos" que irá lidar com uma lista de alun
---
### Dúvidas e Suporte

Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (:
Caso você tenha alguma dúvida, problema ou sugestão, fique à vontade para abrir uma issue no repositório. Espero conseguir te ajudar! (:
35 changes: 30 additions & 5 deletions src/main/java/map/Ordenacao/LivrariaOnline.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

import java.util.*;

/**
* @see "https://www.cblservicos.org.br/isbn/pesquisa/"
*/
public class LivrariaOnline {
private Map<String, Livro> livros;

Expand All @@ -29,7 +26,31 @@ public void removerLivro(String titulo) {
}

public Map<String, Livro> exibirLivrosOrdenadosPorPreco() {
return new TreeMap<>(livros);
List<Map.Entry<String, Livro>> livrosParaOrdenarPorPreco = new ArrayList<>(livros.entrySet());

Collections.sort(livrosParaOrdenarPorPreco, new ComparatorPorPreco());

Map<String, Livro> livrosOrdenadosPorPreco = new LinkedHashMap<>();

for (Map.Entry<String, Livro> entry : livrosParaOrdenarPorPreco) {
livrosOrdenadosPorPreco.put(entry.getKey(), entry.getValue());
}

return livrosOrdenadosPorPreco;
}

public Map<String, Livro> exibirLivrosOrdenadosPorAutor() {
List<Map.Entry<String, Livro>> livrosParaOrdenarPorAutor = new ArrayList<>(livros.entrySet());

Collections.sort(livrosParaOrdenarPorAutor, new ComparatorPorAutor());

Map<String, Livro> livrosOrdenadosPorAutor = new LinkedHashMap<>();

for (Map.Entry<String, Livro> entry : livrosParaOrdenarPorAutor) {
livrosOrdenadosPorAutor.put(entry.getKey(), entry.getValue());
}

return livrosOrdenadosPorAutor;
}

public Map<String, Livro> pesquisarLivrosPorAutor(String autor) {
Expand Down Expand Up @@ -100,7 +121,10 @@ public static void main(String[] args) {
livrariaOnline.adicionarLivro("https://amzn.to/45u86q4", new Livro("Assassinato no Expresso do Oriente", "Agatha Christie", 5d));

// Exibe todos os livros ordenados por preço
livrariaOnline.exibirLivrosOrdenadosPorPreco();
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";
Expand All @@ -115,5 +139,6 @@ public static void main(String[] args) {
// Remover um livro pelo título
livrariaOnline.removerLivro("1984");
System.out.println(livrariaOnline.livros);

}
}
17 changes: 9 additions & 8 deletions src/main/java/map/Ordenacao/Livro.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@

import java.util.Comparator;
import java.util.Map;
import java.util.Set;

public class Livro implements Comparable<Livro> {
public class Livro {
private String titulo;
private String autor;
private double preco;
Expand All @@ -27,11 +26,6 @@ public double getPreco() {
return preco;
}

@Override
public int compareTo(Livro l) {
return Double.compare(preco, l.getPreco());
}

@Override
public String toString() {
return "Livro{" +
Expand All @@ -42,9 +36,16 @@ public String toString() {
}
}

class ComparatorPorPreco implements Comparator<Map.Entry<String, Livro>> {
@Override
public int compare(Map.Entry<String, Livro> l1, Map.Entry<String, Livro> l2) {
return Double.compare(l1.getValue().getPreco(), l2.getValue().getPreco());
}
}

class ComparatorPorAutor implements Comparator<Map.Entry<String, Livro>> {
@Override
public int compare(Map.Entry<String, Livro> l1, Map.Entry<String, Livro> l2) {
return l1.getValue().getAutor().compareToIgnoreCase(l2.getValue().getAutor());
}
}
}
12 changes: 7 additions & 5 deletions src/main/java/set/Pesquisa/ListaTarefas.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,9 @@ public void marcarTarefaPendente(String descricao) {
}

if (tarefaParaMarcarComoPendente != null) {
tarefaParaMarcarComoPendente.setConcluida(true);
if(tarefaParaMarcarComoPendente.isConcluida()) {
tarefaParaMarcarComoPendente.setConcluida(false);
}
} else {
System.out.println("Tarefa não encontrada na lista.");
}
Expand All @@ -105,6 +107,7 @@ public static void main(String[] args) {
// 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");

Expand All @@ -118,16 +121,15 @@ public static void main(String[] args) {
// Contando o número de tarefas na lista
System.out.println("Total de tarefas na lista: " + listaTarefas.contarTarefas());

// Obtendo tarefas concluídas
System.out.println(listaTarefas.obterTarefasConcluidas());

// Obtendo tarefas pendentes
System.out.println(listaTarefas.obterTarefasPendentes());

// Marcando tarefas como concluídas
listaTarefas.marcarTarefaConcluida("Ler livro");
listaTarefas.marcarTarefaConcluida("Estudar Java");
listaTarefas.exibirTarefas();

// Obtendo tarefas concluídas
System.out.println(listaTarefas.obterTarefasConcluidas());

// Marcando tarefas como pendentes
listaTarefas.marcarTarefaPendente("Estudar Java");
Expand Down

0 comments on commit 7e6a9ea

Please sign in to comment.