public class Test { @org.junit.Test public void test(){ List test = new ArrayList(); Map m = new HashMap(); m.put("lv1", "一1"); m.put("lv2", "二1"); m.put("lv3", "三1"); test.add(m); m = new HashMap(); m.put("lv1", "一1"); m.put("lv2", "二1"); m.put("lv3", "三2"); test.add(m); m = new HashMap(); m.put("lv1", "一1"); m.put("lv2", "二2"); m.put("lv3", "三3"); test.add(m); m = new HashMap(); m.put("lv1", "一2"); m.put("lv2", "二3"); m.put("lv3", "三4"); test.add(m); m = new HashMap(); m.put("lv1", "一2"); m.put("lv2", "二4"); m.put("lv3", "三5"); test.add(m); List r = getCascaderData(test); System.out.println(r.size()); } private List getCascaderData(List list){ List<CascadeItem> result = new ArrayList<>(); for(int i = 0; i < list.size(); i++){ Map m = (HashMap)list.get(i); String lv1 = (String)m.get("lv1"); String lv2 = (String)m.get("lv2"); String lv3 = (String)m.get("lv3"); int lvIndex = findListIndex(result, lv1); if(lvIndex == -1) { CascadeItem item1 = new CascadeItem(lv1, lv1); CascadeItem item2 = new CascadeItem(lv2, lv2); CascadeItem item3 = new CascadeItem(lv3, lv3); item2.children.add(item3); item1.children.add(item2); result.add(item1); } else { CascadeItem lv1Item = result.get(lvIndex); int lv2Index = findListIndex(lv1Item.children, lv2); if(lv2Index == -1) { CascadeItem item2 = new CascadeItem(lv2, lv2); CascadeItem item3 = new CascadeItem(lv3, lv3); item2.children.add(item3); lv1Item.children.add(item2); } else { CascadeItem lv2Item = lv1Item.children.get(lv2Index); CascadeItem item3 = new CascadeItem(lv3, lv3); lv2Item.children.add(item3); } } } return result; } private int findListIndex(List<CascadeItem> list, String s){ for(int i = 0; i < list.size(); i++){ if(list.get(i).value.equals(s)) return i; } return -1; } public class CascadeItem { String label; String value; List<CascadeItem> children; public CascadeItem(String label, String value){ this.label = label; this.value = value; children = new ArrayList<>(); } } }在getCascaderData处获取对象信息~
返回特定的树形json数据
最新推荐文章于 2023-02-07 11:14:03 发布