初学java,各位帮帮忙,20分相送。关于递归的问题 能不能给我写一个具体的方法。俺头一次用java,大家帮帮忙,引引路啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public getOne(int oid){ rs = select id, name from biao where pid = oid;if(rs.getcount() != 0) return id , name;else return -1;}public myTest(){ aa[] = getOne(1); int sid = aa[0]; String sname = aa[1]; while(sid != -1) { aa[] = getOne(sid); sname += aa[1]; sid = aa[0]; }}思路这样好像可行。 抱歉,知道怎么用SQL,就是不知道怎么用JAVA 用一个N长的数组存放PID,用一个hashtable存放ID和对应的NAME,这样在写一个方法使得数组和hashtable对应起来。不久能取道了吗。Hashtable的key是ID,value是NAME.具体的代码,就不写了,你是不是要PID=ID的对应的名字输出阿。 回复jackkui(长空铸剑) 我只是想要某一个id的上层的name,上上层的name,上上上层的name,然后把这些name拼起来,组合成一个url. 回复 spiritsl(梦雨心蓝) 谢谢你了。你的代码我正在看。 vector 中存的是PID,以字符串存放hashTable中存放id和name的值,这两个你自己建立吧,下面的方法共你参考。public Vector getNames(int pid){ int currentIndex = vector.indexOf(String.valueOf(pid)); Vector names = new Vector(); for(int i = currentIndex ; i <vector.size() ; i++) names.addElements(hashTable.get(vector.elementAt(i))); return names;} 试试这个,最后所有的name都在allNames中。public class Test{ Vector allNames = new Vector();//to store all the names; public static void travelNameByPid( int pid ) { if( pid == 1 ) allNames.add( new String("jhjh") ); else { allName.add( new String( travelNameByPid( pid ) ) ); doDisplayByPid( getIdByPid( pid ) ); } } private int getIdByPid( int pid ) { //do by your logic here } private int getNameByPid( int pid ) { //do by your logic here }} spiritsl(梦雨心蓝),agen10120216(agen)你的写法如何保证name的顺序呢?我的意思是我要把最底层的依次向上排列name Vector allNames = new Vector();(String)allNames.get( 0 )就是最底层的name,(String)allNames.get( allName.size() );就是根节点的name,也就是"jhjh" agen10120216(agen) travelNameByPid( pid )doDisplayByPid( getIdByPid( pid ) );这两句的功能是什么?请原谅我的愚笨。我取出来的数据是根据id得到上一层到上n层的名字的,这怎么体现呢? 关于<s:iterator>遍历数据。 在表单上点击提交按钮时,把增加的数据提交到java代码中,输出到控制台 求一多线程问题(分布式并发环境下) JSP如何向SQL数据库输入数据? 我问下,tomcat自己在运行的时候启动 有关java 给全局临时表插入值的问题 如何处理网站的并发问题 给多人发送邮件问题 为什么我在doStartTag()函数中得不到ModuleConfig的对象? josso 2.31 急啊!!frame框架,在顶部的menu菜单,被框架束缚,总是被底下页面档住怎么解决啊 请问各位如何在jsp或在java中哪个函数可以进行字符的替换?
{
rs = select id, name from biao where pid = oid;
if(rs.getcount() != 0)
return id , name;
else return -1;
}public myTest()
{
aa[] = getOne(1);
int sid = aa[0];
String sname = aa[1];
while(sid != -1)
{
aa[] = getOne(sid);
sname += aa[1];
sid = aa[0];
}
}思路这样好像可行。
存放ID和对应的NAME,这样在写一个方法使得
数组和hashtable对应起来。不久能取道了吗。
Hashtable的key是ID,value是NAME.
具体的代码,就不写了,你是不是要
PID=ID的对应的名字输出阿。
我只是想要某一个id的上层的name,上上层的name,上上上层的name,然后把这些name拼起来,组合成一个url.
谢谢你了。你的代码我正在看。
hashTable中存放id和name的值,这两个
你自己建立吧,下面的方法共你参考。public Vector getNames(int pid)
{
int currentIndex = vector.indexOf(String.valueOf(pid));
Vector names = new Vector();
for(int i = currentIndex ; i <vector.size() ; i++)
names.addElements(hashTable.get(vector.elementAt(i)));
return names;
}
{
Vector allNames = new Vector();//to store all the names;
public static void travelNameByPid( int pid )
{
if( pid == 1 ) allNames.add( new String("jhjh") );
else
{
allName.add( new String( travelNameByPid( pid ) ) );
doDisplayByPid( getIdByPid( pid ) );
}
}
private int getIdByPid( int pid )
{
//do by your logic here
}
private int getNameByPid( int pid )
{
//do by your logic here
}
}
你的写法如何保证name的顺序呢?我的意思是我要把最底层的依次向上排列name
travelNameByPid( pid )
doDisplayByPid( getIdByPid( pid ) );这两句的功能是什么?请原谅我的愚笨。
我取出来的数据是根据id得到上一层到上n层的名字的,这怎么体现呢?