Print arraylist information on the screen

4

I have ArrayList but I can not print the data on the screen.

Follow class:

public class Cachorro {

    private String Raca;
    private String cor;
    private String nome;
    private String nome_dono;
    private int idade;


    public Cachorro(String Raca,String cor,String nome,String nome_dono, int idade){

        this.Raca = Raca;
        this.cor = cor;
        this.nome =nome;
        this.nome_dono = nome_dono;
        this.idade = idade;
    }
    public String getRaca() {
        return Raca;
    }
    public void setRaca(String raca) {
        Raca = raca;
    }
    public String getCor() {
        return cor;
    }
    public void setCor(String cor) {
        this.cor = cor;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getNome_dono() {
        return nome_dono;
    }
    public void setNome_dono(String nome_dono) {
        this.nome_dono = nome_dono;
    }
    public int getIdade() {
        return idade;
    }
    public void setIdade(int idade) {
        this.idade = idade;
    }


    public  String toString(){
        return "Nome Cao:" +getNome()+"\nCor:" +getCor()+
                "\nRaca:"+getRaca()+"\nNome dono:"+ getNome_dono()+"\nIdade:"+getIdade();
    }


}

Main class:

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

public class Main {

    public static void main(String[] args) {

        List<String> dog =  new ArrayList<>();

        Cachorro cc = new Cachorro("rotweiller","preto","Flora","Cesar",8);

        dog.add(cc);
        System.out.println(dog);

    }

}
    
asked by anonymous 09.12.2016 / 19:15

4 answers

10

You have some errors. You first need to create a list of Cachorros and not Strings . Then you must use a foreach to scan the entire list. I changed the list variable name because a list has several s dogs and not just one. Note that you do not need to call toString() , it is called by println() . I gave one organized too.

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

class Cachorro {
    private String Raca;
    private String cor;
    private String nome;
    private String nome_dono;
    private int idade;

    public Cachorro(String Raca,String cor,String nome,String nome_dono, int idade){
        this.Raca = Raca;
        this.cor = cor;
        this.nome =nome;
        this.nome_dono = nome_dono;
        this.idade = idade;
    }
    public String getRaca() {
        return Raca;
    }
    public void setRaca(String raca) {
        Raca = raca;
    }
    public String getCor() {
        return cor;
    }
    public void setCor(String cor) {
        this.cor = cor;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getNome_dono() {
        return nome_dono;
    }
    public void setNome_dono(String nome_dono) {
        this.nome_dono = nome_dono;
    }
    public int getIdade() {
        return idade;
    }
    public void setIdade(int idade) {
        this.idade = idade;
    }
    public  String toString(){
        return "Nome Cao:" + getNome() + "\nCor: " + getCor() +
                "\nRaca: " + getRaca()  +"\nNome dono: " + getNome_dono() + "\nIdade: " + getIdade();
    }
}

class Main {
    public static void main(String[] args) {
        List<Cachorro> dogs = new ArrayList<>();
        dogs.add(new Cachorro("rotweiller", "preto", "Flora", "Cesar", 8));
        for (Cachorro dog : dogs) {
            System.out.println(dog);
        }
    }

}

See working on ideone and on CodingGround .

    
09.12.2016 / 19:29
7

There are several things wrong there.

First that this code neither compile since in this line List<String> dog = new ArrayList<>(); is instantiated a list of String and in the line below tries to add an object of type Cachorro in it.

See an example of the patched code

Note: Notice that I have changed the variable names. It's always a good idea to use descriptive names for the variables, make the code much more readable.

List<Cachorro> listaCachorros = new ArrayList<>();
Cachorro cachorro = new Cachorro("rotweiller","preto","Flora","Cesar",8);

listaCachorros.add(cachorro);

// imprimir os dados do objeto 'cachorro' (adicionado na lista)
System.out.println(cachorro.ToString());

// imprimir os dados de todos os objetos da lista    
for(Cachorro c : listaCachorros)
{
    System.out.println(c.ToString());
}
    
09.12.2016 / 19:26
2

In the main class, the list you started is String, would not it be a Dog list?

public static void main(String[] args) {
    List<Cachorro> dog = new ArrayList<>();

    Cachorro cc = new Cachorro("rotweiller", "preto", "Flora", "Cesar", 8);

    dog.add(cc);
    System.out.println(dog);
}
    
09.12.2016 / 19:19
1

We have a problem with this code!

Your list is String and you are trying to add Cachorro

There are two options (which will print the same content)

Turn the List into a Dog List:

 List<Cachorro> dog =  new ArrayList<>();

Or add the String of Cachorro to the list:

dog.add(cc.toString());
    
09.12.2016 / 19:31