Get and Set in Arraylist

Asked

Viewed 52 times

0

Hello I am currently trying to create a test program in which the user must inform the data about a car. This car he has his own class with get and set and a builder.

I wanted to take the data of the get and set of the Car class and play in the Main class Arraylist.

public class Main{

    Carro car = new Carro();

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList<Carro> carros = new ArrayList<>();

        System.out.println("Digite o id do carro: ");

    }
}

This is the class on car information.

public class Carro {
    private int id;
    private String placa;
    private String modelo;
    private String fabricante;
    private float preco;

    public Carro() {
        this.id = id;
        this.placa = placa;
        this.modelo = modelo;
        this.fabricante = fabricante;
        this.preco = preco;
    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPlaca() {
        return placa;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public String getFabricante() {
        return fabricante;
    }

    public void setFabricante(String fabricante) {
        this.fabricante = fabricante;
    }

    public float getPreco() {
        return preco;
    }

    public void setPreco(float preco) {
        this.preco = preco;
    }

    @Override
    public String toString() {
        return "Carro{" +
                "id=" + id +
                ", placa='" + placa + '\'' +
                ", modelo='" + modelo + '\'' +
                ", fabricante='" + fabricante + '\'' +
                ", preco=" + preco +
                '}';
    }
}

2 answers

0


I made a brief example using a simpler car class just to illustrate.

public class Carro {
    
    private String nome;
    
    public Carro(String nome) {
        this.nome = nome;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }   
}

Following is the main class where the reading process of what is typed in the console will be

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Teste {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        try {
            
            //lista onde os carros serão armazenados
            List<Carro> listaCarros = new ArrayList<Carro>();
            
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            
            String palavraDigitada = "";
            
            //enquanto não digitar a palavra Sair
            while( !palavraDigitada.equalsIgnoreCase("Sair") ) { 
                
                System.out.print("Digite o nome do carro. Digite Sair para encerrar. ");
                
                palavraDigitada = br.readLine();
                
                if( !palavraDigitada.equalsIgnoreCase("Sair") ) {
                    //cria o carro com o nome digitado
                    Carro objCarro = new Carro(palavraDigitada);
                    
                    //adiciona o carro na lista
                    listaCarros.add( objCarro );
                
                    System.out.println("Carro " + objCarro.getNome() + " adicionado com sucesso na lista!");
                    System.out.println("");
                }
                
            }
            
            
            //imprime a lista de carros
            System.out.println("");
            System.out.println("****************");
            System.out.println("Carros gravados");
            for(Carro objCarro : listaCarros) {
                System.out.println(objCarro .getNome());
            }
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

Simply adapt the Car class with the other properties you need. I hope it helps.

0

Let the community be happy!

package pt.stackoverflow;


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

public class Main {


    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        List<Carro> carros = new ArrayList<Carro>();
        Boolean sair = true;

        do {

            System.out.println("Digite o id do carro: ");
            int id = in.nextInt();
            System.out.println("Digite a placa do carro: ");
            String placa = in.next();
            System.out.println("Digite o modelo do carro:    ");
            String modelo = in.next();
            System.out.println("Digite o fabricante do carro:    ");
            String fabricante = in.next();
            System.out.println("Digite o preço do carro:    ");
            float preco = in.nextFloat();


            Carro carro = new Carro();
            carro.setId(id);
            carro.setPlaca(placa);
            carro.setModelo(modelo);
            carro.setFabricante(fabricante);
            carro.setPreco(preco);
            carros.add(carro);

            System.out.println("Digite 0 para sair e 1 para adicionar:    ");
             int num =  in.nextInt();

             if(num == 0)
                 sair = false;

        }while(sair);

        carros.forEach(System.out::println);


    }
}

I used it in the same file so the Car class does not have the access modifier. Note if you only want to instantiate a class the constructor in this case, you do not need to have argument; Example: Car car = new Car();

class Carro {
    private int id;
    private String placa;
    private String modelo;
    private String fabricante;
    private float preco;

    public Carro() {

    }


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getPlaca() {
        return placa;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public String getModelo() {
        return modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = modelo;
    }

    public String getFabricante() {
        return fabricante;
    }

    public void setFabricante(String fabricante) {
        this.fabricante = fabricante;
    }

    public float getPreco() {
        return preco;
    }

    public void setPreco(float preco) {
        this.preco = preco;
    }

    @Override
    public String toString() {
        return "Carro{" +
                "id=" + id +
                ", placa='" + placa + '\'' +
                ", modelo='" + modelo + '\'' +
                ", fabricante='" + fabricante + '\'' +
                ", preco=" + preco +
                '}';
    }
}

Your code has an error:

public Carro() {
        this.id = id;
        this.placa = placa;
        this.modelo = modelo;
        this.fabricante = fabricante;
        this.preco = preco;
    }

When you want to instantiate the class with parameters see below how it looks:

 public Carro(int id, String placa, String modelo, 
              String fabricante, float preco) {
        this.id = id;
        this.placa = placa;
        this.modelo = modelo;
        this.fabricante = fabricante;
        this.preco = preco;
    }

That way you can instantiate like this:

Carro carro = new Carro(1, "ABC-123", "KA", "Ford", 10000 );

Browser other questions tagged

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