Pessoal,
Gostaria da ajuda de vocês para obter ideias de como fazer o seguinte algoritmo em Java 8:
Classe base (criei apenas para ilustrar o que preciso fazer)
`public class Lance {
private Long cdLance;
private Integer nuRanking;
private BigDecimal vlLance;
public Lance(Long cdLance, Integer nuRanking, BigDecimal vlLance) {
super();
this.cdLance = cdLance;
this.nuRanking = nuRanking;
this.vlLance = vlLance;
}...// getters and setters`
Dado que eu possua os seguintes lances:
List<Lance> lances = new ArrayList<Lance>(); lances.add(new Lance(1L, 1, new BigDecimal("10"))); lances.add(new Lance(2L, 2, new BigDecimal("12"))); lances.add(new Lance(3L, 3, new BigDecimal("15")));
Quando eu atualizar o valor de um lance, por exemplo, o valor do lance 2 para 11
Lance lanceDaVez = lances.get(2); lanceDaVez.setVlLance(new BigDecimal("11"));
Então os rankings devem ser redefinidos, por exemplo, para esse caso, ficaria:
Lance [cdLance=1, nuRanking=1, vlLance=10] Lance [cdLance=3, nuRanking=2, vlLance=11] Lance [cdLance=2, nuRanking=3, vlLance=12]
Observem que agora o lance cujo cdLance=2 passou para 3º e o lance com cdLance=3 para 2º
Sei que existem diversas formas de fazer isso, mas gostaria que alguém me desse um exemplo fazendo isso em Java 8, com os métodos contidos na nova API de Stream.
Alguém se habilita?