![](/img/trans.png)
[英]What would be the best way of converting Object ArrayList to Double List
[英]what would be best way to convert List of ArrayList<Object> to a custom object java11 Spring boot 2.1
我有 ArrayList 對象列表,其中對象可以是文本、BigDecimal、Long
List<Object> data = {
{"date","prize1","cardsNumers","cardObtained","totalCards","anotherPrize"},
{"2020-05-01",435345.67,43,56,67,345345345},
{"2020-03-01",45656.2,34,67,23,456456},
{"2020-02-01",56565,34,56,67,878987}
}
arrayList 中的第 1、2、3 等對象是第 0 個 arraylist 中提到的每個字段的值。 在如下表中,
我想從上面獲取每個文件的總和並分配給下面自定義 Object 的同一字段,
public class SumObject {
private Date date;
private BigDecimal sumPrize1;
private BigDecimal sumCardsNumers;
private long sumCardObtained;
private long sumTotalCards;
private long sumAnotherPrize;
}
我通過遍歷 List 中的 arrayList 來實現這一點,並通過 get(index) 方法獲取值。 但我想知道是否有任何其他好的方法可以做到這一點。
如果有人有任何建議,請發布答案或給我一個我可以閱讀的文件的方向。
提前致謝。
在這種情況下,最好使用下面的數據結構來描述一個表數據:
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};
這樣,每個表行都由每個 List 上的 get(index) 描述。 此並行列表對您的聚合很有用:
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.