Ceriwis  

Go Back   Ceriwis > HOBI > Komputer & Teknologi > Programming

Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman.

Reply
 
Thread Tools
  #1  
Old 20th November 2011
Badguy13 Badguy13 is offline
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......



Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


 


All times are GMT +7. The time now is 01:52 PM.


no new posts