
数据库查询的出来如下 {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 |
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 先转成树在排序复杂度会更低 |