91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么使用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

蒙自县| 湟中县| 东乌珠穆沁旗| 怀宁县| 铁岭县| 安国市| 波密县| 于都县| 韩城市| 安远县| 云梦县| 师宗县| 永和县| 大丰市| 宣恩县| 榆中县| 铜山县| 阜南县| 修武县| 大理市| 马尔康县| 城市| 互助| 梅州市| 隆昌县| 略阳县| 夏邑县| 永修县| 台北县| 清远市| 宝应县| 鲁甸县| 五大连池市| 辽阳市| 南部县| 河津市| 田林县| 沙河市| 江门市| 秦安县| 杭锦后旗|