中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Java遞歸實現評論多級回復功能

發布時間:2022-07-04 10:12:35 來源:億速云 閱讀:291 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么使用Java遞歸實現評論多級回復功能”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么使用Java遞歸實現評論多級回復功能”文章能幫助大家解決問題。

評論實體

數據庫存儲字段: id 評論id、parent_id 回復評論id、message 消息。其中如果評論不是回復評論,parent_id-1

創建一個評論實體 Comment

public class Comment {

    /**
     * id
     */
    private Integer id;

    /**
     * 父類id
     */
    private Integer parentId;

    /**
     * 消息
     */
    private String message;
}

查詢到所有的評論數據。方便展示樹形數據,對Comment添加回復列表

List<ViewComment> children

ViewComment結構如下:

// 展示樹形數據
public class ViewComment {
    /**
     * id
     */
    private Integer id;
    /**
     * 父類id
     */
    private Integer parentId;
    /**
     * 消息
     */
    private String message;
    /**
     * 回復列表
     */
    private List<ViewComment> children = new ArrayList<>();
}

添加非回復評論

非回復評論的parent_id-1,先找到非回復評論:

List<ViewComment> viewCommentList = new ArrayList<>();
// 添加模擬數據
Comment comment1 = new Comment(1,-1,"留言1");
Comment comment2 = new Comment(2,-1,"留言2");
Comment comment3 = new Comment(3,1,"留言3,回復留言1");
Comment comment4 = new Comment(4,1,"留言4,回復留言1");
Comment comment5 = new Comment(5,2,"留言5,回復留言2");
Comment comment6 = new Comment(6,3,"留言6,回復留言3");
//添加非回復評論
for (Comment comment : commentList) {
    if (comment.getParentId() == -1) {
        ViewComment viewComment = new ViewComment();
        BeanUtils.copyProperties(comment,viewComment);
        viewCommentList.add(viewComment);
    }
}

遞歸添加回復評論

遍歷每條非回復評論,遞歸添加回復評論:

for(ViewComment viewComment : viewCommentList) {
    add(viewComment,commentList);
}
private void add(ViewComment rootViewComment, List<Comment> commentList) {
    for (Comment comment : commentList) {
        // 找到匹配的 parentId  
        if (rootViewComment.getId().equals(comment.getParentId())) {
            ViewComment viewComment = new ViewComment();
            BeanUtils.copyProperties(comment,viewComment);
            rootViewComment.getChildren().add(viewComment);
            //遞歸調用 
            add(viewComment,commentList);
        }
    }
}
  • 遍歷每條非回復評論。

  • 非回復評論id匹配到評論的parentId,添加到該評論的children列表中。

  • 遞歸調用。

結果展示:

怎么使用Java遞歸實現評論多級回復功能

關于“怎么使用Java遞歸實現評論多級回復功能”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方山县| 怀来县| 体育| 南汇区| 云霄县| 志丹县| 贡嘎县| 怀来县| 博客| 确山县| 蚌埠市| 白城市| 开封市| 泾阳县| 和龙市| 余庆县| 祁门县| 枣阳市| 中西区| 本溪市| 贵阳市| 剑川县| 丰台区| 宣恩县| 兴义市| 新龙县| 九龙县| 历史| 布尔津县| 明光市| 融水| 渭南市| 利川市| 濮阳县| 阿拉善右旗| 乳山市| 东台市| 灵丘县| 民和| 屏边| 慈利县|