Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ordenar

Alguém pode me ajudar não estou conseguindo ordenar esta lista por quantidade.

private void atualizaMovimentoDiario() throws CheckExceptionsFaultBean, RemoteException {
        MovtoDiarioDao movtoDiarioDao = new MovtoDiarioDao();

        List<MovtoDiario> carregaMovtoDiario = movtoDiarioDao.getCarregaMovtoDiario(usuarioLogadoTotvs.getEmpresa(),
                usuarioLogadoTotvs.getEstacao());

        List<MovtoDiario> carregaMovtoDiarioOrdenado = carregaMovtoDiario;
        carregaMovtoDiarioOrdenado.sort(Comparator.comparing(MovtoDiario::getQuantidade));

        carregaMovtoDiario = carregaMovtoDiarioOrdenado;
        for (MovtoDiario movtoDiario : carregaMovtoDiarioOrdenado) {

            System.out.println(movtoDiario.getItCodigo() + " -  " + movtoDiario.getQuantidade());

        }

        this.setListaMovtoDiario(carregaMovtoDiario);

        totalMovimentosDiario();

    }

Resultado:

16:13:55,268 INFO [stdout] (default task-11) 301.073.027C - 0

16:13:55,269 INFO [stdout] (default task-11) 301.071.027C - 12

quando queria

16:13:55,269 INFO [stdout] (default task-11) 301.071.027C - 12 16:13:55,268 INFO [stdout] (default task-11) 301.073.027C - 0

2 respostas

Olá, Jorge. Tudo bom?

Seu código ordena do menor para o maior valor.

Você pode usar o método reversed(). Este método devolve um comparador que impõe sua ordem reversa (maior para menor valor).

Alterando a linha:

carregaMovtoDiarioOrdenado.sort(Comparator.comparing(MovtoDiario::getQuantidade).reversed());

Funcionou? Esclareci sua dúvida?

Abs e bons estudos! :)

solução!

Guilherme, Solucionado, muitíssimo obrigado!!!!