Fiz uma classe simples de Recibo com atributos e um construtor e uma segunda classe para gerar uma TreeSet de Recibos. Criei as referencias para a classe e as adicionei na TreeSet. Quando rodei o código, deu uma "ClassCastException". Vi que essa exception se dá pois a classe não implementa a interface "Comparable". Para não dá mais essa exception, a classe rebico implemente a interface Comparable e o método obrigatorio compareTo retorna a comparação emtre os valores do recibo, ficando dessa forma:
package br.com.alura.exercicio;
public class Recibo implements Comparable<Recibo>{
private String nomeEmpresa;
private double valorRecibo;
public Recibo(String nomeEmpresa, int valorRecibo) {
super();
this.nomeEmpresa = nomeEmpresa;
this.valorRecibo = valorRecibo;
}
public String getNomeEmpresa() {
return nomeEmpresa;
}
public double getValorRecibo() {
return valorRecibo;
}
@Override
public int compareTo(Recibo rec) {
return Double.compare(this.valorRecibo, rec.valorRecibo);
}
@Override
public String toString() {
return "Empresa: " + this.nomeEmpresa + ", valor: R$ " + this.valorRecibo;
}
}
package br.com.alura.exercicio;
import java.util.Set;
import java.util.TreeSet;
public class GerandoRecibo {
public static void main(String[] args) {
Recibo rec1 = new Recibo("Idream", 330);
Recibo rec2 = new Recibo("Idream", 250);
Recibo rec3 = new Recibo("Idream", 450);
Set<Recibo> recibos = new TreeSet<>();
recibos.add(rec1);
recibos.add(rec2);
recibos.add(rec3);
for (Recibo recibo : recibos) {
System.out.println(recibo);
}
}
}