0
我想根據記錄選擇從表中名稱列表。在java中使用遞歸重複值獲取字符串列表
例如,如果我選擇Id = 1,那麼我需要列表值(A,b,c,d)和他們所有孩子的孩子。
以下是我的表格數據。
ID(1,2,3,4,5)的名稱(A,B,C,d,E)的ParentId( - ,1,1,3, - )
以下是我對遞歸碼
public List<String> selectData(int orgId) {
String parentId = String.valueOf(orgId);
List<Object> listData = selectAllData();// here parent select
List<String> returnList = new ArrayList<String>();
for (Object parents : listData) {
List<String> list = this.getChildFor(parents.getId());
for (String child : list) {
returnList.add(child);
}
}
for(String enty : listData){
returnList.add(enty);
}
return returnList;
}
public List<String> getChildFor(int orgId) {
String parentId = String.valueOf(orgId);
int pId = 0;
List<Object> listData = selectByExample(); // here child select from all record based on orgId.
List<String> returnList = new ArrayList<String>();
do {
for (Object parents : listData) {
returnList.add(parents.name);
List<String> list = this.getChildFor(parents.getId);
for (String child : list) {
returnList.add(child.getname());
}
}
pId = 0;
} while (pId != 0);
for(String enty : listData){
returnList.add(enty);
}
listData = null;
return returnList;
}
在「returnList」列表中,我得到了重複值。 任何人都會對此表示感謝。
已經添加了什麼讓你相信你不應該得到一個重複的值? –
當我選擇Id 1時,我得到了類似於(a,b,a,b,c,d)的值。我需要價值與他們的所有孩子的孩子一樣,我需要(a,b,c,d)。 – VJM