簡體   English   中英

轉換 ArrayList 列表的最佳方法是什么<object>到自定義 object java11 Spring 引導 2.1<div id="text_translate"><p> 我有 ArrayList 對象列表,其中對象可以是文本、BigDecimal、Long</p><pre> List&lt;Object&gt; 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} }</pre><p> arrayList 中的第 1、2、3 等對象是第 0 個 arraylist 中提到的每個字段的值。 在如下表中,</p><p> <a href="https://i.stack.imgur.com/Tmdw2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Tmdw2.png" alt="在此處輸入圖像描述"></a></p><p> 我想從上面獲取每個文件的總和並分配給下面自定義 Object 的同一字段,</p><pre> public class SumObject { private Date date; private BigDecimal sumPrize1; private BigDecimal sumCardsNumers; private long sumCardObtained; private long sumTotalCards; private long sumAnotherPrize; }</pre><p> 我通過遍歷 List 中的 arrayList 來實現這一點,並通過 get(index) 方法獲取值。 但我想知道是否有任何其他好的方法可以做到這一點。</p><p> 如果有人有任何建議,請發布答案或給我一個我可以閱讀的文件的方向。</p><p> 提前致謝。</p></div></object>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM