java.lang.NullPointerException的问题请大家帮忙

martycai 2008-05-11 11:18:46
public FastVector freq_2()//fre-2
{
FastVector vtemp=new FastVector();
vectoralltemp.removeAllElements();

Item temp1=new Item();
Item temp2=new Item();
Item temp3=new Item();
String key1,key2;
String key="";
int tempcon=0;
boolean b1=false,b2=false;
for(int i=0;i<fullFreq[1].size();i++)
{
temp1=(Item)fullFreq[1].elementAt(i);
key1=temp1.getKey();
for(int j=i+1;j<fullFreq[1].size();j++)
{ Item temp=new Item();
temp2=(Item)fullFreq[1].elementAt(j);
tempcon=0;
key2=temp2.getKey();
///////////////////////////////////////////////////////
for(int h=0;h<vectorall.size();h++)//2项的支持度
{
temp3=(Item)vectorall.elementAt(h);
key=temp3.getKey();
if(key.equals("%"))
{
if(b1&&b2)
{
tempcon++;
b1=false;
b2=false;

}
}
else if(key1.equals(key))
{
b1=true;
}
else if(key2.equals(key))
{
b2=true;
}
}
/////////////////////////////////////////////
temp.setcon(tempcon);//setcon
String con=temp1.getKey()+","+temp2.getKey()+",";
temp.setKey(con);//sekey
vectoralltemp.addElement(temp);//add item


}

}
fullFreq[2]=vectoralltemp;
return vectoralltemp;



}

public FastVector ck(FastVector freq_k,int k) {

FastVector temp=new FastVector();
FastVector temp1=new FastVector();
FastVector temp2=new FastVector();

temp=freq_k;
for(int i=0;i<temp.size();i++)
{
String s1="",s2="",s3="",s4="",s11="",s22="";
char c1,c2;
Item I1=new Item();
I1=(Item)temp.elementAt(i);
s11=I1.getKey();
//txt=txt+s11+"^";
for(int j=i+1;j<temp.size();j++)
{
Item I2=new Item();
I2=(Item)temp.elementAt(j);
s22=I2.getKey();
///////////////////////////////判断他们字符串是否相

int k2=0,k3=0;
int t1,t2;
t1=s11.length();
t2=s22.length();

for(int x=0;x<t1;x++)
{
if(s11.charAt(x)==',')
{

k2++;
if(k2<=k-1)
{
s3=s3+s1+",";


}

if(k2!=k)
{

s1="";
}

}
else
{
s1=s1+String.valueOf(s11.charAt(x));

}

}
////////////////
for(int x=0;x<t2;x++)
{
if(s22.charAt(x)==',')
{

k3++;
if(k3<=k-1)
{
s4=s4+s2+",";


}
if(k3!=k)
{
s2="";
}
}
else
{

s2=s2+String.valueOf(s22.charAt(x));
}

}
//////////////////////////////////
if(s3.equals(s4))
{
Item I3=new Item();
if(s1.equals(s2))
{s1=s2=s3=s4="";}
else
{
if(s1.compareTo(s2)>0)
{
I3.setKey(s3+s2+","+s1+",");

temp1.addElement(I3);
s1=s2=s3=s4="";
}
else
{
I3.setKey(s3+s1+","+s2+",");

temp1.addElement(I3);
s1=s2=s3=s4="";
}
txt=txt+I3.getKey()+"PP ";
}
}
else
{s1=s2=s3=s4="";}

}
}


return temp1;
}
public FastVector odd(FastVector c_k2,FastVector freq_k,int k2)//c_k2为c_k+1的侯选集freq_k为k阶频繁集 k2为k+1 item里面含有的个数
{
FastVector ck2=new FastVector();
FastVector fk=new FastVector();
FastVector fk2=new FastVector();
boolean isfk=false;
ck2=c_k2;
fk=freq_k;
//fk=fullFreq[2];
int count=0;
for(int i=0;i<c_k2.size();i++)
{

Item Itemp=new Item();
String istr="";
Itemp=(Item)c_k2.elementAt(i);
istr=Itemp.getKey();
//int size=k2;

for(int j=0;j<=k2-2;j++)//////??///
{
int k=0;
String strtemp="",strtemp1="";
for(int x=0;x<istr.length();x++)
{

if(istr.charAt(x)==',')
{


k=k+1;
if(k!=j)
{
strtemp1=strtemp1+strtemp+",";
//txt=txt+strtemp1+"--";
strtemp="";

}
else
{strtemp="";}


}
else
{
strtemp=strtemp+String.valueOf(istr.charAt(x));
}

}


for(int p=0;p<fk.size();p++)
{

Item hh=new Item();
String s1="";
hh=(Item)fk.elementAt(p);
s1=hh.getKey();
if(s1.equals(strtemp1))
{
//txt=txt+s1+"Ss ";
isfk=true;
strtemp1="";
s1="";
}
else
{
s1="";

}

}
}

int strnum=0;
for(int h=0;h<vectorall.size();h++)//setcon
{
Item temp3=new Item();
temp3=(Item)vectorall.elementAt(h);
String key="";
key=temp3.getKey();
String strcon[]=new String[k2];
String stemp="";
int num=0;

for(int j=0;j<istr.length();j++)//count String
{
if(istr.charAt(j)==',')
{
// num++;
strcon[num]=stemp;
num++;
stemp="";
}
else
{
stemp=stemp+String.valueOf(istr.charAt(j));
}
}

if(key.equals("%"))
{
if(strnum==k2)
{
count++;
strnum=0;
}
}
else
{
for(int k=0;k<k2;k++)
{
if(key.equals(strcon[k])||strcon[k].equals(key))/////////////错误提示处
{
strnum++;
}
}
}

}
if(isfk)
{

//设置con
if(count>=1)//set minsup没有设置用1先代替
{
Itemp.setcon(count);
count=0;

fk2.addElement(Itemp);
}
//Itemp.removekey();
//txt=txt+Itemp.getKey()+"pp\n";
isfk=false;
count=0;
}
else
{
count=0;
}

}
fullFreq[k2]=fk2;


return fullFreq[k2];

}
public FastVector freq_k(FastVector freq_k,int k )//fre_k---->fre_k+1
{//由ck 与odd完成\
int k2=k;
k2++;
freq_1();
FastVector c_k2=new FastVector();
FastVector freq_k2=new FastVector();
FastVector f_k=new FastVector();
f_k=freq_k;
c_k2=ck(f_k,k);
freq_k2=odd(c_k2,f_k,k2);//////////////////////////////////////////////////错误提示处
fullFreq[k+1]=freq_k2;

Item kk=new Item();

for(int x=0;x<fullFreq[k+1].size();x++)
{
kk=(Item)fullFreq[k+1].elementAt(x);
}
return freq_k2;
}

public void freq_allk()
{

int k2=2;
int key=2;
freq_1();
//fullFreq[k2]=
FastVector temp=new FastVector();
temp=freq_2();
fullFreq[2]=freq_2();
while(temp.size()>=1)
{

temp=freq_k(fullFreq[k2],key);///////////////////////////错误提示处

k2++;
fullFreq[k2]=temp;
kfullSet=k2;
key++;
txt=txt+k2+"s"+key+" YY";
Item kk=new Item();
txt=txt+"WWWWW"+fullFreq[k2].size()+"WWWWW";
for(int x=0;x<fullFreq[k2].size();x++)
{
kk=(Item)fullFreq[k2].elementAt(x);
txt=txt+kk.getKey()+"--"+kk.getcon()+"OO ";//测试用
}
txt=txt+"gh"+" ";
}

}
}
这里是代码
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sur_Qbing 2008-05-12
  • 打赏
  • 举报
回复
at bookstore.apriori.odd(apriori.java:492)

LZ ,你这个有问题,自己检查了
radium0028 2008-05-12
  • 打赏
  • 举报
回复
这么长的代码怎么看啊~~~~~
告诉你个方法自己调吧.
在入口点下端点.一步步跟进.看一下具体是什么地方空了...
Shine_Panda 2008-05-12
  • 打赏
  • 举报
回复
FastVector temp=new FastVector();
//估计可能是 freq_2();返回的是null 所 一你访问 temp.size()的时候报错了.
temp=freq_2();
fullFreq[2]=freq_2();
while(temp.size()>=1)
{

temp=freq_k(fullFreq[k2],key);///////////////////////////错误提示处

k2++;
fullFreq[k2]=temp;
kfullSet=k2;
key++;
swcdxd 2008-05-11
  • 打赏
  • 举报
回复
程序太长了我看不过来啊! 但我经常遇到这种问题是由于对数组的访问超过了数组的范围。你可以看一下是不是。
martycai 2008-05-11
  • 打赏
  • 举报
回复
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at bookstore.apriori.odd(apriori.java:492)
at bookstore.apriori.freq_k(apriori.java:548)
at bookstore.apriori.freq_allk(apriori.java:574)
at org.apache.jsp.MyJsp_jsp._jspService(MyJsp_jsp.java:96)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
上面是出错的提示请问那里出错了出了什么原因

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧