Eu preciso buscar a nota que o usuário digitou a mostrar a posição dela no ArrayList,
Eu estava tentando fazer assim mas nao ta dando certo, eu ia comparar a nota que o usuário digitou com cada ArrayList só q nao consigo fazer isso( essa é a parte do código onde eu estava tentando fazer)
private int buscar(String nome){
for(int i = 0; i < notas.size(); i++){
return i; //sim achou
}
return -1;//nao achou
}
import java.util.*;
public class BlocoDeNotas{
private ArrayList notas;
public BlocoDeNotas(){
notas = new ArrayList();
}
public void addNota(String nota){
notas.add(nota);
}
public void blockNota(String nota){
notas.remove(nota);
}
public void listarNota(){
for(String listar:notas){
System.out.println(listar);
}
}
public int procurarNota(String nota){
return buscar(nota);
}
private int buscar(String nome){
for(int i = 0; i < notas.size(); i++){
private List<String> notas = new ArrayList<>();
public void addNota(String nota) {
notas.add(nota);
}
public void removeNota(String nota) {
notas.remove(nota);
}
public void listarNotas() {
for (String n : notas) {
System.out.println("Nota: " + n);
}
}
public int buscaNotas(String nota) {
return notas.indexOf(nota);
}
Classe principal
public static void main(String[] args) {
Exemplo e = new Exemplo();
System.out.println(">>>> Adição de notas");
e.addNota("A");
e.addNota("B");
e.addNota("C");
e.addNota("D");
System.out.println("\n>>>> Listagem de notas");
e.listarNotas();
System.out.println("\n>>>> Remoção de nota");
e.removeNota("C");
System.out.println("\n>>>> Nota listagem de notas");
e.listarNotas();
System.out.println("\n>>>> Busca do index");
System.out.println("A nota está na posição " + e.buscaNotas("D"));
}
Console:
>>>> Adição de notas
>>>> Listagem de notas
Nota: A
Nota: B
Nota: C
Nota: D
>>>> Remoção de nota
>>>> Nota listagem de notas
Nota: A
Nota: B
Nota: D
>>>> Busca do index
A nota está na posição 2
você tem que modificar aqui, vou dar o exemplo abaixo, como não sei os atributos da sua classe Notas, Vou dar um exemplo colocando como se existissem 1 nome e 3 notas e cada variável vai ter o nome começando com nota e o número respectivo será sobre a ordem das notas.
private Notas buscar(String nome){
for(int i = 0; i < notas.size(); i++){
if(notas.get(i).nome.equals(nome)){ /*você vai verificar cada posição do vetor e se em uma delas o nome for igual ao passado por parametro na string nome ele vai retornar o nome com as notas incluso*/
/*Se quiser mostra as notas é só fazer conforme exemplo abaixo:*/
/*System.out.println("Nota 1: "+notas.get(i).nota1);*/
/*System.out.println("Nota 2: "+notas.get(i).nota2);*/
/*System.out.println("Nota 3: "+notas.get(i).nota3);*/
return notas.get(i); //sim achou
}
}
return null;//nao achou
}
Você também tem que fazer uma classe do tipo Notas, pois senão não tem como você procurar um nome especifico, e se tiver notas repetidas poderá retornar a de outro.
public class Notas{
private String nome;
private int nota1;
private int nota2;
private int nota3;
public Notas(String nome, int nota1, int nota2, int nota3){
this.nome=nome;
this.nota1=nota1;
this.nota2=nota2;
this.nota3=nota3;
}
}
depois na sua aplicação principal mudar conforme exemplo abaixo:
public class BlocoDeNotas{
private ArrayList notas;
public BlocoDeNotas(){
notas = new ArrayList<Notas>();
}
public void addNota(Notas nota){
notas.add(nota);
}
public Notas procurarNota(String nota){
return buscar(nota);
}
Na classe main você terá que ler 4 valores, sendo 1 nome e 3 notas, não vou colocar o exemplo de como você vai pegar as informações do usuário, para o teste eu vou setar valores prontos, conforme o exemplo abaixo:
main{
String nome = "Heitor";
int nota1 = 7;
int nota2 = 8;
int nota3 = 6;
Notas nota = new Notas();
nota.nome=nome;
nota.nota1=nota1;
nota.nota2=nota2;
nota.nota3=nota3;
BlocoDeNotas blocoDeNotas= new BlocoDeNotas;
blocoDeNotas.addNota(nota);
Notas notaASerMostrada = blocoDeNotas.procurarNota("Heitor");
if(notaASerMostrada!=null){
System.out.println("Nome: "+notaASerMostrada.nome);
System.out.println("Nota 1: "+notaASerMostrada.nota1);
System.out.println("Nota 2: "+notaASerMostrada.nota2);
System.out.println("Nota 3: "+notaASerMostrada.nota3);
}
}