Olá, prof Camila
No meu método de pesquisar por autor (pesquisaPorAutor()), no módulo Conhecendo Collections Java -> aula - List -> Pesquisa List. Fiz a implementação do método pesquisaPorAutor(), conforme mostrado na aula. Porém nos testes o sistema ignorou a pesquisa por autor trazendo todo os elementos da lista. Mesmo passando um valor que não estava na lista trazia alista completa. Esse comportamento ocorreu apenas neste métodos, os demais métodos por período de tempo e título funcionaram corretamente.
##Teste aplicado:
`package list.Pesquisa;
import java.util.ArrayList;
import java.util.List;
public class CatalagoLivros {
private List<Livro> livroList;
public CatalagoLivros(){
this.livroList = new ArrayList<>();
}
public void adicionarLivro(String titulo, String autor, int anoPublicacao){
livroList.add(new Livro(titulo, autor, anoPublicacao));
}
public List<Livro> pesquisarPorAutor(String autor){
List<Livro> livrosPorAutor = new ArrayList<>();
if(!livroList.isEmpty()){
for (Livro l : livroList){
if(l.getAutor().equalsIgnoreCase(autor));{
livrosPorAutor.add(l);
}
}
}
return livrosPorAutor;
}
public List<Livro> pesquisarPorIntervaloAno(int anoIncial, int anoFinal){
List<Livro> livrosPorIntervaloAnos = new ArrayList<>();
if (!livroList.isEmpty()){
for (Livro l : livroList){
if (l.getAnoPublicacao() >= anoIncial && l.getAnoPublicacao() <= anoFinal){
livrosPorIntervaloAnos.add(l);
}
}
}
return livrosPorIntervaloAnos;
}
public Livro pesquisarPorTitulo(String titulo){
Livro livroPorTitulo = null;
if (!livroList.isEmpty()){
for (Livro l : livroList){
if (l.getTitulo().equalsIgnoreCase(titulo)){
livroPorTitulo = l;
break;
}else{
System.out.println("Esse título não foi encontrado na lista de livros");
break;
}
}
}
return livroPorTitulo;
}
public static void main(String[] args) {
CatalagoLivros catalagoLivros = new CatalagoLivros();
catalagoLivros.adicionarLivro("Livro 1", "Autor 1", 2020);
catalagoLivros.adicionarLivro("Livro 2", "Autor 2", 2023);
catalagoLivros.adicionarLivro("Livro 1", "Autor 1", 2020);
catalagoLivros.adicionarLivro("Livro 3", "Autor 3", 2024);
catalagoLivros.adicionarLivro("Livro 4", "Autor 4", 2019);
System.out.println(catalagoLivros.pesquisarPorAutor("Autor 1"));
System.out.println(catalagoLivros.pesquisarPorTitulo("Livro 1"));
System.out.println(catalagoLivros.pesquisarPorIntervaloAno(2019, 2021));
}
}
##Resultado do teste:
"C:\Program Files\Java\jdk-17\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1\lib\idea_rt.jar=49964:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2024.1\bin" -Dfile.encoding=UTF-8 -classpath D:\workspace\collections-java\ConhecendoCollectionsJava\out\production\ConhecendoCollectionsJava list.Pesquisa.CatalagoLivros [Livro{titulo=' Livro 1', autor=' Autor 1', anoPublicacao= 2020}, Livro{titulo=' Livro 2', autor=' Autor 2', anoPublicacao= 2023}, Livro{titulo=' Livro 1', autor=' Autor 1', anoPublicacao= 2020}, Livro{titulo=' Livro 3', autor=' Autor 3', anoPublicacao= 2024}, Livro{titulo=' Livro 4', autor=' Autor 4', anoPublicacao= 2019}] Livro{titulo=' Livro 1', autor=' Autor 1', anoPublicacao= 2020} [Livro{titulo=' Livro 1', autor=' Autor 1', anoPublicacao= 2020}, Livro{titulo=' Livro 1', autor=' Autor 1', anoPublicacao= 2020}, Livro{titulo=' Livro 4', autor=' Autor 4', anoPublicacao= 2019}] Process finished with exit code 0
##Versão do Java:
`C:\Users\Soyo>java --version
java 17.0.9 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 17.0.9+11-LTS-201)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.9+11-LTS-201, mixed mode, sharing)
C:\Users\Soyo>`
##A versão da IDE