Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Comparable / ordenação

package blocoprodutos;

import java.util.ArrayList;
import java.util.Collections;
import java.util.*;
public class Listas {
    public static void main(String[] args) {

        Produto oleoDeSoja = new Produto("Oleo de soja ", 6,1000);
        Produto arroz = new Produto("Arroz ", 5,5000 );
        Produto feijao = new Produto("Feijão ", 7, 1300);

        ArrayList<Produto> produtos = new ArrayList<>();
        produtos.add(oleoDeSoja);
        produtos.add(feijao);
        produtos.add(arroz);
        System.out.println("Tamanho da Lista de Produtos: " + produtos.size()+ " itens \n");
        System.out.println("O segundo item da lista é: "+ produtos.get(1).getNome());
        System.out.println(produtos + "\n");

        System.out.println("Lista de produtos ordenados");
        Collections.sort(produtos);
        System.out.println(produtos);

        ProdutoPerecivel queijo = new ProdutoPerecivel("queijo", 49, 500, "11 de maio" );
        ProdutoPerecivel requeijao = new ProdutoPerecivel("requeijão", 14, 2000, "15 de maio" );
        ProdutoPerecivel margarina = new ProdutoPerecivel("margarina", 9, 2500, "10 de maio" );

        ArrayList <ProdutoPerecivel> pereciveis = new ArrayList<>();
        pereciveis.add(queijo);
        pereciveis.add(requeijao);
        pereciveis.add(margarina);

        System.out.println(" \n Esta lista de Produtos perecíveis contém " + pereciveis.size() + " produtos");
        System.out.println("O produto perecível que vai vencer primeiro é: " + pereciveis.get(2).getNome());
        System.out.println(pereciveis);

        System.out.println("\n Lista de produtos perecíveis ordenados");
        Collections.sort(pereciveis);
        System.out.println(pereciveis);
        Collections.sort(produtos);
        System.out.println(produtos);
        produtos.sort(Comparator.comparing(Produto::getPreco));//Ordenando pelo preço
        System.out.println("Produtos ordenados pelo preço");
        System.out.println(produtos);
        pereciveis.sort(Comparator.comparing(ProdutoPerecivel::getDataValidade));//Ordenando pela data de validade
        System.out.println("Produtos perecíveis ordenados pela data de validade");
        System.out.println(pereciveis);

    }


}
package blocoprodutos;

public class Produto implements Comparable<Produto>{
    private String nome;
    private double preco;
    private int quantidade;
    public Produto (String nome, double preco, int quantidade) {
        this.nome = nome;
        this.preco = preco;
        this.quantidade = quantidade;
    }

    public double getPreco() {
        return preco;
    }

    public int getQuantidade() {
        return quantidade;
    }

    public String getNome() {
        return nome;
    }


    public String toString(){

        return " \n Produto \n"+ this.getNome()+ " \n Quantidade: "
                + getQuantidade() + " \n Preço: " + getPreco()+ "\n";

    }

    @Override
    public int compareTo(Produto outroNome) {

        return this.getNome().compareTo(outroNome.getNome());
    }
}
package blocoprodutos;

public class ProdutoPerecivel extends Produto {
    private String nome;
    private double preco;
    private int quantidade;
    String dataValidade;



    public String getDataValidade() {
        return dataValidade;
    }

    public ProdutoPerecivel(String nome, double preco, int quantidade,  String dataValidade ) {
        super(nome, preco, quantidade);
        this.dataValidade = dataValidade;
    }


    @Override
    public String toString() {
        return " \n Produto \n"+ this.getNome()+ " \n Quantidade: "
                + getQuantidade() + " \n Preço: " + getPreco()+ "\n"
                + "Data de validade: " + getDataValidade()+ "\n";
    }
}

Print da compilação do código

Print da compilação do código

1 resposta
solução!

Olá, Terezinha! Tudo certinho?

Ótimo código! Espero que continue a explorar os conteúdos para ampliar seu conhecimento e desenvolver novas habilidades. Caso tenha restado alguma dúvida em relação a qualquer conteúdo do curso ou atividade, não hesite em perguntar, estou disponível e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!