как лучше всего преобразовать список ArrayList <Object>в настраиваемый объект java11 Spring boot 2.1 - PullRequest
0 голосов
/ 27 мая 2020
• 1000 . в табличном представлении, как показано ниже,

enter image description here

Я хотел бы взять сумму каждого поля сверху и назначить этому же полю пользовательского объекта ниже,

public class SumObject {

private Date date;
private BigDecimal sumPrize1;
private BigDecimal sumCardsNumers;
private long sumCardObtained;
private long sumTotalCards;
private long sumAnotherPrize;
}

Я добился этого путем обхода arrayList в списке и получения значения методом get (index). Но я хотел бы знать, есть ли другой хороший способ сделать это.

Если у кого-то есть какие-либо предложения, пожалуйста, отправьте ответ или дайте мне направление документа, который я могу прочитать.

Заранее спасибо.

1 Ответ

1 голос
/ 27 мая 2020

В этом случае для описания данных таблицы лучше использовать следующую структуру данных:

List<BigDecimal> prizes1 = {435345.67, 45656.2, 56565};
List<BigDecimal> cardsNumbers = {43, 34, 34};
List<Long> cardsObtained = {56, 67, 56};
List<Long> totalCards = {67, 23, 67};
List<Long> anotherPrizes = {345345345, 456456, 878987};

Таким образом, каждая строка таблицы описывается с помощью get (индекса) в каждом списке. Эти параллельные списки полезны для вашей агрегации:

BigDecimal sumPrize1 = prizes1.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal sumCardsNumers = cardsNumebrs.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
long sumCardObtained = cardsObtained.stream().sum();
long sumTotalCards = totalCards.stream().sum();
long sumAnotherPrize = anotherPrizes.stream().sum();
...