Login to Website

Login dengan Facebook

 

Post Reply
Thread Tools
  #1  
Old 20th November 2011
Badguy13
Ceriwiser
 
Join Date: Nov 2011
Posts: 399
Rep Power: 14
Badguy13 mempunyai hidup yang Normal
Default [ASK]Recursive Tree Java

pagi agan agan.... ane punya kasus seperti ini,

silahkan diliat dulu codingan ane.....




Spoiler for parents:





Code:

public List listParents() {
return (List) getHibernateTemplate().find("from Category c where c.parentId = 0 order by c.name asc");
}












Spoiler for childs:





Code:

public List listChilds(Category category) {
return (List) getHibernateTemplate().find("from Category c where c.parentId = ?", new Object[]{category.getId()});
}












Spoiler for main:





Code:

public List listMain() {
List hl = new ArrayList();

List parents = listParents();
for (Category ctg : parents) {
CategoryListModelHelper cmh = new CategoryListModelHelper();
cmh.setId(ctg.getId());
cmh.setName(ctg.getName());
hl.add(cmh);

List childs = listChilds(ctg);
for (Category childCtg : childs) {
CategoryListModelHelper cmh2 = new CategoryListModelHelper();
String name = ctg.getName() + " >> " + childCtg.getName();
cmh2.setId(childCtg.getId());
cmh2.setName(name);
hl.add(cmh2);

List childs2 = listChilds(childCtg);
for (Category childCtg2 : childs2) {
CategoryListModelHelper cmh3 = new CategoryListModelHelper();
String name2 = ctg.getName() + " >> " + childCtg.getName() + " >> "+childCtg2.getName();
cmh3.setId(childCtg2.getId());
cmh3.setName(name2);
hl.add(cmh3);
}
}
}
return hl;
}











Jadi, ane tuh mo bikin list tree recursive yang ditampung ke dalam satu list,

nah, klo pake kodingan di atas, ane cuman bisa sampe level 2 doang, sedangkan

kalo dari DB nya itu, level nya bisa unlimited, misal:



Kategori level 0 ==> KatRoot

Kategori level 1 ==> KatChild1

Kategori level 2 ==> KatChild2



klo dirangkum, jadinya ==> KatRoot >> KatChild1 >> KatChild2



Nah, itu klo hanya sampe level dua, klo levelnya lebih dari itu, ada ide gan

bingung nih...., dan sepertinya kodingan ane pun bakal kurang efisien, karena

ada looping di dalam looping.....

beneran deh gan, dah pusing banget ane....



tolong dibantu yaaa......



Sponsored Links
Space available
Post Reply

Thread Tools



Switch to Mobile Mode

no new posts