数据库查询的出来如下 {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_index: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-06-27 01:08:35 +08:00 via Android 1
|
2
qwerthhusn 2019-06-27 08:48:19 +08:00
直接 Collections.sort 不就行了
|
3
qwerthhusn 2019-06-27 08:48:38 +08:00
自定义一个 Comparator
|
4
brust 2019-06-27 09:05:52 +08:00
这个应该是可以的
但是写出来就看效率高低问题了 |
5
aguesuka 2019-06-27 09:07:25 +08:00 via Android
不使用 stream 的话,先排序,然后转成 id:对象的 map,让后为每个对象找到父节点。这样的话 stream 只能当语法糖用
|
6
aguesuka 2019-06-27 09:11:29 +08:00 via Android
先转成树在排序复杂度会更低
|