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

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

java框架選型 Guava vs Lambdaj

java框架選型 Guava vs Lambdaj

森林海 2019-03-20 22:19:48
需求查詢用戶最近的中獎(jiǎng)信息 并返回中獎(jiǎng)名單列表純Java7實(shí)現(xiàn)// 返回用戶最近4條的中獎(jiǎng)紀(jì)錄List<UserWinning> uwList = Lists.newArrayList(new UserWinning(userId, 1), new UserWinning(userId, 2), new UserWinning(userId, 3), new UserWinning(userId, 1));//提取獎(jiǎng)品IDList<Integer> awardIdLsit = new ArrayList<>(uwList.size());for(UserWinning uw : uwList){    awardIdLsit.add(uw.getAwardId());}//根據(jù)獎(jiǎng)品ID查詢獎(jiǎng)品List<Award> awardList = Lists.newArrayList(new Award(1, "獎(jiǎng)品一"), new Award(2, "獎(jiǎng)品二"), new Award(3, "獎(jiǎng)品三"));//List --> Map 得到獎(jiǎng)品ID和獎(jiǎng)品名稱MapMap<Integer, String> awardIdNameMap = new HashMap<>(awardList.size());for(Award a : awardList){    awardIdNameMap.put(a.getId(), a.getName());}評(píng)價(jià)感覺(jué)非常繁瑣 特別是當(dāng)你習(xí)慣了Java8的函數(shù)式編程后Guava實(shí)現(xiàn)List<UserWinning> uwList = Lists.newArrayList(new UserWinning(userId, 1), new UserWinning(userId, 2), new UserWinning(userId, 3), new UserWinning(userId, 1));//提取獎(jiǎng)品ID評(píng)價(jià)代碼不夠簡(jiǎn)潔, 看的時(shí)候還是容易被這些匿名內(nèi)部類干擾,雖然寫的時(shí)候也很流暢。優(yōu)點(diǎn)是返回的集合都是不可變的。Lambdaj實(shí)現(xiàn)List<UserWinning> uwList = Lists.newArrayList(new UserWinning(userId, 1), new UserWinning(userId, 2), new UserWinning(userId, 3), new UserWinning(userId, 1));//提取awardIdListList<Integer> awardIdList = extract(uwList, on(UserWinning.class).getAwardId());System.out.println(awardIdList); List<Award> awardList = Lists.newArrayList(new Award(1, "獎(jiǎng)品一"), new Award(2, "獎(jiǎng)品二"), new Award(3, "獎(jiǎng)品三"));//List -> MapMap<Integer, Award> idAwardMap = index(awardList, on(Award.class).getId());//得到獎(jiǎng)品名稱列表List<String> nameList = convert(awardIdList, new Converter<Integer, String>() {    @Override    public String convert(Integer from) {        return idAwardMap.get(from).getName();    }});System.out.println(nameList);評(píng)價(jià)看起來(lái)很簡(jiǎn)潔, 一目了然。但對(duì)泛型支持的不如Guava, 如List轉(zhuǎn)Map代碼自動(dòng)生成的是Map<Integer,Object> 需要顯式修改為Map<Integer,Award>。 另外也不確定相比Guava性能如何。參考文檔https://code.google.com/archive/p/lambdaj/wikis/LambdajFeatures.wiki因?yàn)榫€上使用的是Java7, 不能使用Java8的語(yǔ)法,故想選擇一些工具類簡(jiǎn)化Java7的開發(fā)。 不確定該選用Gauva還是LambdaJ?
查看完整描述

3 回答

?
MMTTMM

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

我們項(xiàng)目用的是Gauva


查看完整回答
反對(duì) 回復(fù) 2019-04-20
?
慕后森

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

Lambdaj畢竟和java8原生的Lambda有差異的,如果你的項(xiàng)目以后會(huì)遷移到j(luò)ava8的話,還是謹(jǐn)慎考慮使用LambdaJ.


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

添加回答

舉報(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)