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

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

java List包裝類型,封裝對象問題

java List包裝類型,封裝對象問題

www說 2019-05-24 11:19:43
比如,有兩個類A、B:publicclassA{privateinta1;privateinta2;privateBb;//gettersetter}publicclassB{privateintb1;privateintb2;privateinta1;//gettersetter}publicstaticvoidmain(String[]args){Setarr=service1.findList();Listarr2=service2.findList();}現(xiàn)在我需要,arr中item的a1如果等于arr2的item2的a1,就把item2放到item的b屬性中,正常來說這樣子publicstaticvoidmain(String[]args){Setarr=service1.findList();Listarr2=service2.findList();Iteratorit=arr.iterator();while(it.hasNext()){Aa=it.next();arr2.forEach(b->{if(a.getA1()==b.getA1()){a.setB(b);return;}});}}但是一坨這樣子雙循環(huán)看到都惡心,有沒有好的方法,目前用jdk8
查看完整描述

2 回答

?
瀟瀟雨雨

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

單純從效率上考慮,你這樣子雙循環(huán)的復(fù)雜度是O(n^2),其實(shí)可以優(yōu)化的:
先做一個Map,即a1->B的映射,再遍歷Set就可以了。
                            
查看完整回答
?
慕姐8265434

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

一樓正解,用java8的lambda表達(dá)式可以很簡練的實(shí)現(xiàn):
MapbMap=arr2.stream().collect(Collectors.toMap(B::getA1,Function.identity()));
arr.forEach(a->{
Bb=bMap.get(a.getA1());
a.setB(b);
});
                            
查看完整回答
反對 回復(fù) 2019-05-24
  • 2 回答
  • 0 關(guān)注
  • 705 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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