Oi pessoal, eu estou tentando criar um menu que preenche uma LinkedList, no case 1 do switch eu coloquei o preenchimento desse linkedlist, porém quando eu tento acessá-lo no case 2 a lista aparece como vazia, podem me ajudar como eu faço pra acessar os dados inseridos no case 1 pro case 2?
package biblioteca;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
import java.lang.Iterable;
public class Livros {
private String titulo;
private String autor;
private String codigo;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getCodigo() {
return codigo;
}
public void setCódigo(String codigo) {
this.codigo = codigo;
}
public void menu(){
int opcao = 0;
int b=0;
do {
System.out.println("\n\n UNIDESC");
System.out.println("\n =========================");
System.out.println(" | 1 - REGISTRAR |");
System.out.println(" | 2 - PESQUISAR |");
System.out.println(" | 3 - SAIR |");
System.out.println(" =========================\n");
Scanner ler = new Scanner (System.in);
opcao = ler.nextInt();
System.out.print("\n");
LinkedList lista = new LinkedList<>();
switch (opcao) {
case 1:
System.out.println("Autor:");
autor = ler.next();
System.out.println("Titulo:");
titulo = ler.next();
System.out.println("Código de letras:");
codigo = ler.next();
if (autor == null || titulo == null || codigo == null) {
System.out.println("Por favor, informe todos os dados");
menu();
} else {
lista.add(autor);
lista.add(titulo);
lista.add(codigo);
System.out.println("salvo com sucesso");
System.out.println("Informe um titulo");
String tit = ler.next();
System.out.println(lista.contains(tit));
System.out.println(Arrays.toString(lista.toArray()));
menu();
}
break;
case 2:
System.out.println(Arrays.toString(lista.toArray()));
System.out.println("1 - Pesquisar por titulo\n2 - Pesquisar por autor\n3 - Pesquisar por código");
int novaOpcao = ler.nextInt();
if (novaOpcao == 1) {
System.out.println("Informe um titulo");
String tit = ler.nextLine();
System.out.println(lista.contains(tit));
if (lista.contains(tit)== true) {
System.out.println("TEM");
}
menu();
}
if (novaOpcao == 2) {
System.out.println("Informe um autor");
String ba = ler.nextLine();
System.out.println(lista.contains(ba));
menu();
}
if (novaOpcao == 3) {
System.out.println("Informe um titulo");
String tit = ler.next();
menu();
}
break;
}
} while (opcao != 3);
System.out.println("PROGRAMA ENCERRADO");
}
}
No caso esse array to string sai vazio no case 2.