当前位置: 首页 > news >正文

移动端网站怎么做外链武汉大学人民医院精神科

移动端网站怎么做外链,武汉大学人民医院精神科,网站独立ip多代表什么,wordpress怎么做说说背景 在开发过程中经常需要把平铺的数据结构转为树形的数据结构,例如多级菜单、组织机构等。 实现方案有很多种。 1、可以使用递归查询,但是这样数据一多会导致频繁的多次查询数据库,产生很多额外的IO开销,总体的响应时间会比较…

背景

在开发过程中经常需要把平铺的数据结构转为树形的数据结构,例如多级菜单、组织机构等。

实现方案有很多种。

1、可以使用递归查询,但是这样数据一多会导致频繁的多次查询数据库,产生很多额外的IO开销,总体的响应时间会比较慢,一般不会这样做。

2、可以事先查询出来所有的数据,再进行递归的子节点查找,这是一个可行的方案,只需要查询一次数据库,之后的操作利用算法在内存操作,这样响应时间会有一个很大的提升。

3、这里要说的一种方案和第二种类似,只不过采用了google的guava包下的Multimap这种数据结构,利用它可以一个key对应多个值的特性。

方案实现

引入guava包

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>33.2.0-jre</version>
</dependency><!-- 这个包可以不要,这里我用来转json字符串打印出来有用到 -->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version>
</dependency>

树形VO

@Data
public class TreeVO {private List<TreeVO> children;private int id;private boolean leaf;private String menuName;private int parentId;
}

转树示例代码

public static void main(String[] args) {TreeVO v1 = new TreeVO();v1.setId(10L);v1.setParentId(0L);v1.setMenuName("第一级菜单");TreeVO  v2 = new TreeVO();v2.setId(11L);v2.setParentId(10L);v2.setMenuName("第二级菜单1");TreeVO v21 = new TreeVO();v21.setId(12L);v21.setParentId(10L);v21.setMenuName("第二级菜单2");TreeVO v3 = new TreeVO();v3.setId(21L);v3.setParentId(11L);v3.setMenuName("第三级菜单");Multimap<Long,TreeVO> multimap = ArrayListMultimap.create();multimap.put(v1.getParentId(),v1);multimap.put(v2.getParentId(),v2);multimap.put(v21.getParentId(),v21);multimap.put(v3.getParentId(),v3);Iterator<TreeVO> iterator = multimap.values().iterator();while (iterator.hasNext()) {TreeVOmenuNode = iterator.next();// 找直接后代 childrenCollection<TreeVO> children = multimap.get(menuNode.getId());if (children.isEmpty()) {menuNode.setLeaf(true);menuNode.setChildren(null);} else {menuNode.setChildren(children);}}System.out.println(JSON.toJSONString(multimap.get(0L),SerializerFeature.PrettyFormat));}

这里打印出来的结果是

[
    {
        "children":[
            {
                "children":[
                    {
                        "id":21,
                        "leaf":true,
                        "menuName":"第三级菜单",
                        "parentId":11
                    }
                ],
                "id":11,
                "leaf":false,
                "menuName":"第二级菜单1",
                "parentId":10
            },
            {
                "id":12,
                "leaf":true,
                "menuName":"第二级菜单2",
                "parentId":10
            }
        ],
        "id":10,
        "leaf":false,
        "menuName":"第一级菜单",
        "parentId":0
    }
]

http://www.dt0577.cn/news/26309.html

相关文章:

  • 网站开发软件有哪些站长工具忘忧草社区
  • 网站优化新闻北京公司排名seo
  • dw怎样做网站切换百度关键词排名联系
  • 广州网站制作品牌怎么接广告赚钱
  • 做推广哪家网站好百度网盘登录入口
  • 宝塔做两个网站6百度搜索引擎的网址
  • 产品网络推广seo网站推广有哪些
  • 六安网页设计游戏优化大师
  • 先做网站还是做APP武汉seo引擎优化
  • 如何建一个简单的网站投稿网站
  • 南昌网站定制湖北网络推广公司
  • 介绍公司的文案seo排名点击 seo查询
  • 日本做暖暖的网站郑州网站网页设计
  • 做外汇著名网站机构类网站有哪些
  • 深圳旅游必去十大景点西安seo专员
  • 做公众好号的网站在线制作网站免费
  • 易网做的网站后台磁力屋 最好用
  • 时时彩做号网站线上宣传的方式
  • 做靓号网站成都网站建设技术支持
  • 北京网站开发哪家公司好百度百家号官网登录
  • 网站建设扁平化网页广告怎么做
  • 学校网站建设申请报告seo排名优化收费
  • 网站类型分类武汉seo首页
  • 廊坊网站排名优化公司哪家好怎么创建网页链接
  • 建设通app官网下载安装江苏seo和网络推广
  • 有没有医学生做课件的网站家庭优化大师免费下载
  • bae如何上传wordpress关键词优化心得
  • 国外域名。国内网站有趣的网络营销案例
  • 东圃网站建设新闻头条今日要闻
  • 设计网站推广方案百度快照优化排名