原始串列資料:
"list":[
{"id": 54,"pid":0,"name":"應交稅費","level":1,"code":"2221"},
{"id": 55,"pid":54,"name":"應交增值稅","level":2,"code":"222101"},
{"id": 56,"pid":55,"name":"進項稅額","level":3,"code":"22210101"},
{"id": 57,"pid":55,"name":"銷項稅額抵減","level":3,"code":"22210102"},
{"id": 58,"pid":54,"name":"未交增值稅","level":2,"code":"222102"},
{"id": 59,"pid":54,"name":"預交增值稅","level":2,"code":"222103"},
.......
{"id": 158,"pid":0,"name":"應付利息","level":1,"code":"2223"},
{"id": 159,"pid":54,"name":"待抵扣進項稅額","level":2,"code":"222104"},
{"id": 160,"pid":55,"name":"已交稅金","level":3,"code":"22210103"},
]
想實作的需求:
"list":[
{"id": 54,"pid":0,"name":"應交稅費","level":1,"code":"2221"},
{"id": 55,"pid":54,"name":"應交增值稅","level":2,"code":"222101"},
{"id": 56,"pid":55,"name":"進項稅額","level":3,"code":"22210101"},
{"id": 57,"pid":55,"name":"銷項稅額抵減","level":3,"code":"22210102"},
{"id": 160,"pid":55,"name":"已交稅金","level":3,"code":"22210103"},
{"id": 58,"pid":54,"name":"未交增值稅","level":2,"code":"222102"},
{"id": 59,"pid":54,"name":"預交增值稅","level":2,"code":"222103"},
{"id": 159,"pid":54,"name":"待抵扣進項稅額","level":2,"code":"222104"},
.......
{"id": 158,"pid":0,"name":"應付利息","level":1,"code":"2223"},
]
其實類似于樹狀的結構資料,子節點永遠在父節點之下,并且根據code的大小進行了排序。
下面來一個圖片看一下想要的串列格式


uj5u.com熱心網友回復:
這個是樹狀結構型別,按照樹狀結構處理就可以了;可以按照遞回處理uj5u.com熱心網友回復:
List<Tom> list = //你的集合;Collections.sort(list, new Comparator<Tom>() {
@Override
public int compare(Tom o1, Tom o2) {
return o1.getName().compareTo(o2.getName());
}
});
Tom換成你的List集合中的物件。
uj5u.com熱心網友回復:
忘了說了,o1.getName().compareTo(o2.getName());換成你的o1.getCode().compareTo(o2.getCode());如果code欄位不是字串,要轉成字串比較,String.valueOf(o1.getCode()).compareTo(String.valueOf(o2.getCode()));
uj5u.com熱心網友回復:
Collections.sort, 自定義你的排序規則,看你的要求按照編碼正序排序就可以了uj5u.com熱心網友回復:
Collections.sort, 一步解決不了問題uj5u.com熱心網友回復:
用的什么資料庫轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/283716.html
標籤:Java相關
