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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

java8的流實(shí)現(xiàn)無限極分類

標(biāo)簽:
Java
/**
 * 查询所有分类,按顺序显示
 * 显示出树状
 * @return
 */
public List<DealCategory> getCategories() {
    List<DealCategory> dealCategories = getAllWithoutDeleted();//从缓存或数据库中查询全部
    //JDK8的stream处理,把根分类区分出来
    List<DealCategory> roots = dealCategories.stream().filter(dealCategory -> (dealCategory.getParentId() == 0)).collect(Collectors.toList());
    //对跟分类进行排序
    roots.sort(new Comparator<DealCategory>() {
        @Override
        public int compare(DealCategory o1, DealCategory o2) {
            return o1.getOrderNum() > o2.getOrderNum() ? 1 : -1;
        }
    });

    //把非根分类区分出来
    List<DealCategory> subs = dealCategories.stream().filter(dealCategory -> (dealCategory.getParentId() != 0)).collect(Collectors.toList());

    //递归构建结构化的分类信息
    roots.forEach(root -> buildSubs(root, subs));
    return roots;
}

/**
 * 递归构建
 * @param parent
 * @param subs
 */
private void buildSubs(DealCategory parent, List<DealCategory> subs) {
    List<DealCategory> children = subs.stream().filter(sub -> (sub.getParentId() == parent.getId())).collect(Collectors.toList());
    if (!CollectionUtils.isEmpty(children)) {//有子分类的情况
        parent.setChildren(children);
        children.forEach(child -> buildSubs(child, subs));//再次递归构建
    }
}
點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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

舉報(bào)

0/150
提交
取消