
数据库查询的出来如下 {id:1,parent_id:0,name:'首页',sort_index:1}, {id:2,parent_id:0,name:'表格',sort_index:2}, {id:3,parent_id:2,name:'表 1',sort_index:1} {id:4,parent_id:2,name:'表 2',sort_idex:2} {id:5,parent_id:4,name:'子表 1',sort_index:1} ... 测试数据,表为树状表,在 java 中查询出来为 List 对象
期望实现效果如下
{id:1,parent_id:0,name:'首页',sort_index:1} {id:2,parent_id:0,name:'表格',sort_index:2, children:[{{id:3,parent_id:2,name:'表 1',sort_index:1},{id:4,parent_id:2,name:'表 2',sort_index:2,children:[{id:5,parent_id:4,name:'子表 1',sort_index:1} ]}}]},
如何排序会效率比较高呢,各位大佬们。
1 johnniang 2019 年 6 月 27 日 via Android |
2 qwerthhusn 2019 年 6 月 27 日 直接 Collections.sort 不就行了 |
3 qwerthhusn 2019 年 6 月 27 日 自定义一个 Comparator |
4 brust 2019 年 6 月 27 日 这个应该是可以的 但是写出来就看效率高低问题了 |
5 aguesuka 2019 年 6 月 27 日 via Android 不使用 stream 的话,先排序,然后转成 id:对象的 map,让后为每个对象找到父节点。这样的话 stream 只能当语法糖用 |
6 aguesuka 2019 年 6 月 27 日 via Android 先转成树在排序复杂度会更低 |