第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

對(duì)列表中的所有屬性值求和

對(duì)列表中的所有屬性值求和

MMMHUHU 2023-08-04 15:29:56
我有一個(gè)具有多個(gè)整數(shù)屬性的類,如下所示:public class Test {    private Integer a;    private Integer b;    private Integer c;    private Integer d;    private Integer e;    private Integer f;    private Integer g;}因此,我得到了一個(gè)包含很多寄存器的類的列表,并且我必須單獨(dú)求和該列表的所有屬性。然后我做了類似的事情:List<Test> tests = testRepository.findAllTest();Test test = new Test();for (Test testList: tests) {    test.setA(test.getA + testList.getA);    test.setB(test.getB + testList.getB);    test.setC(test.getC + testList.getC);    test.setD(test.getD + testList.getD);    test.setE(test.getE + testList.getE);    test.setF(test.getF + testList.getF);    test.setG(test.getG + testList.getG);} return test;這個(gè)實(shí)現(xiàn)工作正常,但我現(xiàn)在想是否有一種更簡(jiǎn)單的方法來(lái)做到這一點(diǎn),清理這段代碼并使其變得簡(jiǎn)單
查看完整描述

4 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以修改您的 Test 類以包含添加方法:


public class Test {

    private int a;

    private int b;

    private int c;

    //...


    public void add(Test o) {

        this.a += o.getA();

        this.b += o.getB();

        this.c += o.getC();

        //...

    }

    // setters and getters...

}

那么你的求和函數(shù)可以如下所示:


public Test summation(Collection<Test> testCollection) {

    Test sum = new Test();

    for(Test test : testCollection) {

        sum.add(test);

    }

    return sum;

}


查看完整回答
反對(duì) 回復(fù) 2023-08-04
?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

我會(huì)將其分解為幾個(gè)子問(wèn)題:將一個(gè)測(cè)試對(duì)象添加到另一個(gè)測(cè)試對(duì)象,然后總結(jié)列表。


對(duì)于第一個(gè)問(wèn)題,您可以向 Test 類添加一個(gè)方法,該方法將兩個(gè)測(cè)試對(duì)象相加并返回一個(gè)包含總和的新 Test 對(duì)象。


public class Test {

    ...


    public Test add(Test testToAdd){

        Test result = new Test();

        result.setA(a + testToAdd.getA());

        ...

        result.setG(g + testToAdd.getG());

        return result;

    }

}

然后你可以在求和循環(huán)中調(diào)用它:


List<Test> tests = testRepository.findAllTest();

Test testTotal = new Test();

for (Test test: tests) {

    testTotal = testTotal.add(test);

}

另一個(gè)好處是可以更立即清楚地了解循環(huán)正在做什么。


查看完整回答
反對(duì) 回復(fù) 2023-08-04
?
桃花長(zhǎng)相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

要使用以下命令向現(xiàn)有答案添加另一種類似的方法Stream.reduce:


向您的測(cè)試類添加一個(gè)無(wú)參數(shù)構(gòu)造函數(shù)(如果您還沒(méi)有):


private Test() {

    this(0,0,0,0,0,0,0);

}

將方法 addAttributes 添加到您的測(cè)試類


public Test addAttributes(Test other){

    this.a += other.a; 

    this.b += other.b; 

    this.c += other.c; 

    this.d += other.d;

    //.... 

    return this;

}

然后,您可以通過(guò)執(zhí)行以下操作來(lái)減少列表:


Test result = tests.stream().reduce(new Test(), (t1,t2) -> t1.addAttributes(t2));


查看完整回答
反對(duì) 回復(fù) 2023-08-04
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

在你的類中寫一個(gè)add(Test other)方法Test:


public void add(Test other) {

   this.a += other.getA();

   this.b += other.getB();

   // ...

   this.g += other.getG();

}

然后,使用它:


Test test = new Test();

List<Test> allTests = testRepository.findAllTest();

allTests.forEach(individualTest -> individualTest.add(test));

return test;


查看完整回答
反對(duì) 回復(fù) 2023-08-04
  • 4 回答
  • 0 關(guān)注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)