java簡單的無限極分類
阿新 • • 發佈:2017-12-02
無限極分類這是一個比較簡單的無限極分類,適用於各種編程語言。
這個原理是 一次性把數據庫所有分類讀取出來之後再根據pid來排序。
比較簡單,好理解。
public static List<Category> cates; private static List<Category> tmpCates = new ArrayList<Category>(); public static void main(String[] args) { init(); List<Category> cList = tree( cates , 0 , 0 ); for (Category c:cList) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < c.getLevel(); i++){ sb.append("--"); } System.out.println( sb.toString() + c.getName() ); } } public static List<Category> tree( List<Category> cs , Integer pid , Integer level ){ for (Category c: cs) { if( c.getParent_id() == pid ){ c.setLevel( level ); tmpCates.add(c); tree( cs , c.getId() , level+1 ); } } return tmpCates; } public static void init(){ cates = new ArrayList<Category>(); Category c1 = new Category(); c1.setId(1); c1.setName("廣東"); c1.setParent_id(0); cates.add(c1); c1 = new Category(); c1.setId(2); c1.setName("陜西"); c1.setParent_id(0); cates.add(c1); c1 = new Category(); c1.setId(3); c1.setName("四川"); c1.setParent_id(0); cates.add(c1); c1 = new Category(); c1.setId(5); c1.setName("深圳"); c1.setParent_id(1); cates.add(c1); c1 = new Category(); c1.setId(6); c1.setName("陜西"); c1.setParent_id(2); cates.add(c1); c1 = new Category(); c1.setId(8); c1.setName("成都"); c1.setParent_id(3); cates.add(c1); c1 = new Category(); c1.setId(9); c1.setName("寶雞"); c1.setParent_id(2); cates.add(c1); }
這個主要的方法就是tree()函數
java簡單的無限極分類