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

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

使用自定義對象的另一個 ArrayList 字段對 ArrayList 進行排序

使用自定義對象的另一個 ArrayList 字段對 ArrayList 進行排序

UYOU 2022-07-20 10:04:08
我有 2 個數(shù)組列表,一個自定義對象的 RequestList 和 ResponseList。請求列表有 10 個帶有 RequestHeader 和 RequestBody 的soap 請求。10 是一個示例(甚至可能是 1000 條或更多甚至 100 萬條記錄) 現(xiàn)在,RequestHeader(Header.java) 有一個名為 RequestId 的元素,其類型為 String請求對象<CustomClassRequest> <header>    <RequestId>1</RequestId> </header> <Body></Body></CustomClassRequest>假設RequestList有10個soap請求,requestId從1到10(使用數(shù)字來簡化這個用例)現(xiàn)在,當我收到響應時,我會并行觸發(fā)這些soap 請求并釋放插入訂單,因為它在我的RequestList 中。因此,我的 ResponseList 將有所有這 10 個肥皂請求的響應,但 requestId 的順序不同。響應對象<CustomClassResponse> <header>    <RequestId>1</RequestId> </header> <Body></Body></CustomClassResponse>注意:響應中的標頭屬于不同的類 ResponseHeader.java我是否可以根據(jù) RequestList 存在的插入順序使用公共字段 RequestId 對我的 ResponseList 進行排序。讓我知道 Java 8 API 是否有可能的解決方案,甚至使用任何第三方解決方案
查看完整描述

2 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

您可以使用 java8 lambda 表達式

例如

resposneList.stream()
   .sorted((o1, o2) -> o1.getHeader().getRequestId()
   .compareTo(o2.getHeader().getRequestId()))`


查看完整回答
反對 回復 2022-07-20
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

您不應該使用 Comparator 因為您不比較它們之間的列表元素來計算它們的順序。
您可以從將 id 關聯(lián)到響應的響應列表中創(chuàng)建一個 Map。
然后流式傳輸請求并將其 id 映射到映射鍵。
這是為響應創(chuàng)建新列表的解決方案:

Map<Integer, Response> responseByIdMap = responses.stream()
                                                  .collect(toMap(Response::getId, r->r);responses = request.stream()
       .map( req -> responseByIdMap.get(req.getId))
       .collect(toList());


查看完整回答
反對 回復 2022-07-20
  • 2 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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