Print content of an object belonging to a TreeSet (Collection) [duplicate]

0

I have a TreeSet that will store several objects of a "Products" class, this class has 3 attributes:

  

int codProduct;        String descProduct;        float precoProduct;

After storing some "Product" objects in this TreeSet, I need to print the contents of each of them. For this, I made this method:

public String imprimeLista(){
    Iterator<Produto> i = lProdutos.iterator();
    while (i.hasNext()){
        System.out.println(i.next() + " ");
    }
    return("");
}

I've registered 2 products to test, and what it prints is:

  

proj.catalogo.Produto@28d93b30

     

proj.catalogo.Produto@1b6d3586

How can I get it to print codProduct, Product, and preProduct?

    
asked by anonymous 21.11.2018 / 12:54

1 answer

-1

You need to implement the toString() method of your Produto class. Here's an example:

public class Produto {

    private int codProduto; 
    private String descProduto; 
    private float precoProduto;

    @Override
    public String toString() {
        return "Produto {" +
                "codProduto=" + codProduto +
                ", descProduto='" + descProduto + '\'' +
                ", precoProduto=" + precoProduto +
                '}';
    }
}

Output example:

Produto{codProduto=123, descProduto='Descrição', precoProduto=123.0}

This toString() method can be easily generated by your favorite IDE.

Bonus Tip: Instead of using Float to represent monetary values, consider using BigDecimal .

    
21.11.2018 / 12:59