How to return the values of an arraylist in Java

Asked

Viewed 1,068 times

0

I am unable to return the values of the arraylist. I created a Student class with some methods. In another class I create an arraylist of the type Student and add values. However when I show nothing appears. I used the foreachto traverse the array.

import java.util.Scanner;
import java.util.ArrayList;

public class Aluno1{

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        ArrayList<Aluno> alunos = new ArrayList<Aluno>();
        int opcao, opcao2;

        do{
            System.out.println("0 - Sair\n1 - Adicionar novo aluno\n2 - Mostrar todos os alunos");
            opcao = input.nextInt();


            if(opcao == 1){
                System.out.println("Digite o nome do aluno: ");
                String nome = input.next();
                Aluno aluno = new Aluno(nome);//Instancia um objeto do tipo Aluno
                alunos.add(aluno);//Adiciona no arraylist

                do{
                    System.out.println("0 - Sair\n1 - Adicionar nota");
                    opcao2 = input.nextInt();

                    if(opcao2 == 1){
                        System.out.println("Digite a nota: ");
                        aluno.getNota().add(input.nextDouble());//Adiciona notas enquanto não for digitado zero
                    }

                }while(opcao2 != 0);

            if(opcao == 2){
                for(Aluno item : alunos){//Imprime os valores do arraylist e chamando seus métodos
                    System.out.println("Nome: " + item.getNome());
                    System.out.println("Média: " + item.getMedia());
                    System.out.println("Desvio Padrão: " + item.getDesvioPadrao());
                    System.out.println("Variância: " + item.getVariancia());
                }
            }

            }
        }while(opcao != 0);
    }
}
  • Where the implementation of the class Aluno?

  • 2

    Your second if is inside the first, will never be executed

  • The problem was in the ifsame. Resolved!

1 answer

2


Your second if is inside the first, the way it is he never saw to list the items of his ArrayList

Your code should be like this:

import java.util.Scanner;
import java.util.ArrayList;

public class Aluno {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        ArrayList<Aluno> alunos = new ArrayList<Aluno>();
        int opcao, opcao2;

        do {
            System.out.println("0 - Sair\n1 - Adicionar novo aluno\n2 - Mostrar todos os alunos");
            opcao = input.nextInt();


            if (opcao == 1) {
                System.out.println("Digite o nome do aluno: ");
                String nome = input.next();
                Aluno aluno = new Aluno(nome);//Instancia um objeto do tipo Aluno
                alunos.add(aluno);//Adiciona no arraylist

                do {
                    System.out.println("0 - Sair\n1 - Adicionar nota");
                    opcao2 = input.nextInt();

                    if (opcao2 == 1) {
                        System.out.println("Digite a nota: ");
                        aluno.getNota().add(input.nextDouble());//Adiciona notas enquanto não for digitado zero
                    }

                } while (opcao2 != 0);
            }

            if (opcao == 2) {
                for (Aluno item : alunos) {//Imprime os valores do arraylist e chamando seus métodos
                    System.out.println("Nome: " + item.getNome());
                    System.out.println("Média: " + item.getMedia());
                    System.out.println("Desvio Padrão: " + item.getDesvioPadrao());
                    System.out.println("Variância: " + item.getVariancia());
                }
            }
        } while (opcao != 0);
    }
}

Note: I changed more than the if in the class, I added some spaces to make it clearer and removed the class name number

Browser other questions tagged

You are not signed in. Login or sign up in order to post.