国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java創(chuàng)建樹形結(jié)構(gòu)算法實(shí)例代碼

Java創(chuàng)建樹形結(jié)構(gòu)算法實(shí)例代碼

2020-07-30 15:23路偉 Java教程

本篇文章主要介紹了Java創(chuàng)建樹形結(jié)構(gòu)算法實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

JavaWeb的相關(guān)開發(fā)中經(jīng)常會(huì)涉及到多級(jí)菜單的展示,為了方便菜單的管理需要使用數(shù)據(jù)庫進(jìn)行支持,本例采用相關(guān)算法講數(shù)據(jù)庫中的條形記錄進(jìn)行相關(guān)組裝和排序講菜單組裝成樹形結(jié)構(gòu)

首先是需要的JavaBean

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
 
/**
 * <Description> 菜單擴(kuò)展<br>
 */
public class MenuExt implements Serializable {
 
  /**
   * 菜單ID
   */
  private Long id;
 
  /**
   * 菜單名稱
   */
  private String name;
 
  /**
   * 菜單地址
   */
  private String url;
 
  /**
   * 菜單圖標(biāo)
   */
  private String icon;
 
  /**
   * 父菜單ID
   */
  private Long parentId;
 
  /**
   * 子菜單
   */
  private List<MenuExt> children = new ArrayList<MenuExt>();
 
  /**
   * 菜單順序
   */
  private Integer ordby;
 
  /**
   * 菜單狀態(tài)
   */
  private String state;
 
  //省略Getter和Setter
 
 
  /**
   *
   * <Description> 孩子節(jié)點(diǎn)排序<br>
   *
   */
  public void sortChildren() {
    Collections.sort(children, new Comparator<MenuExt>() {
      @Override
      public int compare(MenuExt menu1, MenuExt menu2) {
        int result = 0;
 
        Integer ordby1 = menu1.getOrdby();
        Integer ordby2 = menu2.getOrdby();
 
        Long id1 = menu1.getId();
        Long id2 = menu2.getId();
        if (null != ordby1 && null != ordby2) {
          result = (ordby1 < ordby2 ? -1 : (ordby1 == ordby2 ? 0 : 1));
        } else {
          result = (id1 < id2 ? -1 : (id1 == id2 ? 0 : 1));
        }
        return result;
      }
 
    });
    // 對(duì)每個(gè)節(jié)點(diǎn)的下一層節(jié)點(diǎn)進(jìn)行排序
    for (Iterator<MenuExt> it = children.iterator(); it.hasNext();) {
      it.next().sortChildren();
    }
  }
 
  public List<MenuExt> getChildren() {
    return children;
  }
 
  public void setChildren(List<MenuExt> children) {
    this.children = children;
  }
}

Java算法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static List<MenuExt> createTreeMenus(List<MenuExt> menus) {
    List<MenuExt> treeMenus = null;
    if (null != menus && !menus.isEmpty()) {
      // 創(chuàng)建根節(jié)點(diǎn)
      MenuExt root = new MenuExt();
      root.setName("菜單根目錄");
 
      // 組裝Map數(shù)據(jù)
      Map<Long, MenuExt> dataMap = new HashMap<Long, MenuExt>();
      for (MenuExt menu : menus) {
        dataMap.put(menu.getId(), menu);
      }
 
      // 組裝樹形結(jié)構(gòu)
      Set<Entry<Long, MenuExt>> entrySet = dataMap.entrySet();
      for (Entry<Long, MenuExt> entry : entrySet) {
        MenuExt menu = entry.getValue();
        if (null == menu.getParentId() || 0 == menu.getParentId()) {
          root.getChildren().add(menu);
        } else {
          dataMap.get(menu.getParentId()).getChildren().add(menu);
        }
      }
 
      // 對(duì)樹形結(jié)構(gòu)進(jìn)行二叉樹排序
      root.sortChildren();
      treeMenus = root.getChildren();
    }
    return treeMenus;
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/banning/p/6218633.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美黄色免费网址 | 九九综合九九 | 视频一区二区在线观看 | 一级国产免费 | 精品一区二区不卡 | 精品一区二区在线看 | 黄色网日本 | 国产情侣一区二区三区 | 中文日韩在线 | 91日韩精品一区二区三区 | 日韩精品一区二区三区中文字幕 | 亚洲91 | 免费观看av网站 | 一区二区三区在线免费观看 | 欧洲精品视频在线观看 | 青青av| 亚洲天堂一区在线 | 亚洲精品字幕 | 欧美日韩亚洲一区二区三区 | 黄色免费观看网址 | 亚洲人成网站b2k3cm | 欧洲一区在线观看 | av在线黄 | 欧美永久精品 | 蜜桃传媒一区二区 | 亚洲视频免费观看 | 综合网视频 | 中文字幕亚洲一区二区三区 | 美女视频一区 | www日韩| 国产一区亚洲二区三区 | 黄色片子免费观看 | 欧美中文字幕 | 亚洲成人综合网站 | 国产精品自拍视频 | 国产精品黄色 | 99久久精品一区二区成人 | 免费观看黄视频 | 日本精品一区二区三区在线观看视频 | 日韩欧美视频在线 | 亚洲免费网站 |