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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果條件取決于當(dāng)前值和先前值,如何檢查 takeWhile 中的條件?

如果條件取決于當(dāng)前值和先前值,如何檢查 takeWhile 中的條件?

智慧大石 2023-09-27 15:19:36
我有一個 arrayList 如下:[{hours: 48, cancellationCharges: 0},   {hours: 12, cancellationCharges: 10},   {hours: 0, cancellationCharges: 20}]上述數(shù)組表示出發(fā)前 0 至 12 小時(shí)內(nèi),需收取 20% 的取消費(fèi)用。出發(fā)前 12 小時(shí)至 48 小時(shí)內(nèi),需支付 10% 的取消費(fèi);超過 48 小時(shí),則無需支付取消費(fèi)。我想過濾上述內(nèi)容以找出超出一天的取消費(fèi)用。即,在上述情況下,結(jié)果應(yīng)該是[{hours: 48, cancellationCharges: 0},   {hours: 12, cancellationCharges: 10}]我嘗試按條件“小時(shí)”>= 24 進(jìn)行過濾,如果最后一個元素的小時(shí)數(shù)不是 24,我會再次迭代以找到第一個小時(shí)數(shù) < 24 的元素。是否有更好的方法來解決此問題。我用的是java12。
查看完整描述

1 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個贊

您只需要跟蹤您看到的最后“小時(shí)”值即可。請記住,Predicate您傳遞給的takeWhile是一個對象,因此您可以在其中保留狀態(tài)。它看起來像這樣:


cancellationRules.takeWhile(new Predicate<CancellationRule> {

    private int previousHours = Integer.MAX_VALUE;

    public boolean test(CancellationRule rule) {

        boolean result = rule.hours >= 24 || previousHours >= 24;

        previousHours = rule.hours;

        return result;

    }

});


查看完整回答
反對 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 102 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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