class student
{
String firstname;//名
String lastname;//姓
long ID;//账号
student(String fn,String ln,long id)
{
firstname=fn;lastname=ln;ID=id;
}
void display()
{
System.out.println("姓名是:"+firstname+lastname);
System.out.println("学号是:"+ID);
}
String getlast()
{
return lastname;
}
String getfirst()
{
return firstname;
}
}class stuarray
{
student[] s;
int nstu;
stuarray(int max)
{
nstu=0;
s=new student[max];
}
void insert(String fn,String ln,long id)
{
s[nstu++]=new student(fn,ln,id);
}
void InsertSort_by_firstname()//按照名进行排序
{
int in,out;
student tmp; //用于存放临时对象
for(out=1;out<nstu;out++)
{
tmp=s[out];
in=out;
while(in>0 && s[in-1].getfirst().compareTo(tmp.getfirst())>0)
{
s[in]=s[in-1];
--in;
}
s[in]=tmp;
}
}
void print()
{
int j;
for(j=0;j<nstu;j++)
s[j].display();
System.out.println();
}
student[] find(String last)// type of student 一次查询所有字段
{
int i = 0; student[] stu=new student[nstu];
int index=0; for (; i < nstu; i++)
if (s[i].getlast().equals(last))
{
stu[index++]=s[i];
}
if (index == 0)
{
return null;
}
else
return stu;
}
public boolean deleteall(String searchname)//删除所有关键字相同的项???
{
student[] stu=new student[nstu];
int index=0;
for(int i=0;i<nstu;i++)
if(s[i].getlast().equals(searchname))
stu[index].firstname=stu[index].lastname=null;
stu[index].ID=0;
index++;
return true;
}
}class TestData
{
public static void main(String[] args)
{
int maxsize=100;
stuarray stu=new stuarray(maxsize);
stu.insert("Mhicael","Jordan",101);
stu.insert("Lary","Jordan",102);
stu.insert("Kevien","Jordan",103);
stu.insert("Qw","Jordan",104);
student[] found=stu.find("Jordan");
/*for(int i=0;i<found.length;i++)
{
if(found[i]!=null)
{
System.out.print(i+1+":");
found[i].display();
}
} */
}
}
帮忙看看,为什么deleteall()删除时出现错误呢?
{
String firstname;//名
String lastname;//姓
long ID;//账号
student(String fn,String ln,long id)
{
firstname=fn;lastname=ln;ID=id;
}
void display()
{
System.out.println("姓名是:"+firstname+lastname);
System.out.println("学号是:"+ID);
}
String getlast()
{
return lastname;
}
String getfirst()
{
return firstname;
}
}class stuarray
{
student[] s;
int nstu;
stuarray(int max)
{
nstu=0;
s=new student[max];
}
void insert(String fn,String ln,long id)
{
s[nstu++]=new student(fn,ln,id);
}
void InsertSort_by_firstname()//按照名进行排序
{
int in,out;
student tmp; //用于存放临时对象
for(out=1;out<nstu;out++)
{
tmp=s[out];
in=out;
while(in>0 && s[in-1].getfirst().compareTo(tmp.getfirst())>0)
{
s[in]=s[in-1];
--in;
}
s[in]=tmp;
}
}
void print()
{
int j;
for(j=0;j<nstu;j++)
s[j].display();
System.out.println();
}
student[] find(String last)// type of student 一次查询所有字段
{
int i = 0; student[] stu=new student[nstu];
int index=0; for (; i < nstu; i++)
if (s[i].getlast().equals(last))
{
stu[index++]=s[i];
}
if (index == 0)
{
return null;
}
else
return stu;
}
public boolean deleteall(String searchname)//删除所有关键字相同的项???
{
student[] stu=new student[nstu];
int index=0;
for(int i=0;i<nstu;i++)
if(s[i].getlast().equals(searchname))
stu[index].firstname=stu[index].lastname=null;
stu[index].ID=0;
index++;
return true;
}
}class TestData
{
public static void main(String[] args)
{
int maxsize=100;
stuarray stu=new stuarray(maxsize);
stu.insert("Mhicael","Jordan",101);
stu.insert("Lary","Jordan",102);
stu.insert("Kevien","Jordan",103);
stu.insert("Qw","Jordan",104);
student[] found=stu.find("Jordan");
/*for(int i=0;i<found.length;i++)
{
if(found[i]!=null)
{
System.out.print(i+1+":");
found[i].display();
}
} */
}
}
帮忙看看,为什么deleteall()删除时出现错误呢?
解决方案 »
- 求高人给指条路
- struts传值问题
- Tomcat WEB 1024 并发问题
- 我对学java新人的想法
- jsp网页中的内容显示不了的问题
- JSP报错http status 500 ,请帮忙解决,谢谢
- JSP中修改文本框中显示的内容后怎么再获取?
- ■■高分征解:jsp页面中用数组参数动态调用另一个jsp页面■■
- 看看这个页面 Jsp1.jsp 点击按钮中文不能显示
- 怎样用HttpURLConnection类呢?
- jsp ajax sql2000 无限级级联
- <jsp:include page="left.jsp"...>,left.jsp中有<jsp:useBean ...>语句后,left.jsp为什么不能显示?
楼主【fwloveyou】截止到2008-07-25 09:15:43的历史汇总数据(不包括此帖):
发帖的总数量:8 发帖的总分数:20 每贴平均分数:2
回帖的总数量:2 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:8 结贴的总分数:20
无满意结贴数:7 无满意结贴分:160
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:87.50 % 无满意结分率:800.00%
敬礼!
at stuarray.deleteall(student.java:153)
at TestData.main(student.java:180)
怎么办呢?
修改为
stu[index].firstname=null;
stu[index].lastname=null;
E:\java\rubbish>javac student.java
student.java:182: 未报告的异常 java.lang.Exception;必须对其进行捕捉或声明以便抛
出
boolean bl=stu.deleteall("Jordan");
^
1 错误
try{
boolean bl=stu.deleteall("Jordan");
}catch(Exception e){
e....(打印出异常的内容)
}
public boolean deleteall(String searchname)throws NullPointerException//删除所有关键字相同的项???
{
student[] stu=new student[nstu];
int index=0;
try
{
for(int i=0;i<nstu;i++)
if(s[i].getlast().equals(searchname))
stu[index].firstname=null;
stu[index].lastname=null;
stu[index].ID=0;
++index;
}
catch (NullPointerException ne)
{
System.out.println();
ne.printStackTrace();
}
return true;
}
}
在主函数里这样写的:
try
{
boolean bl=stu.deleteall("Jordan");
if(bl)
for(int i=0;i<found.length;i++)
{
if(found[i]!=null)
{
System.out.print(i+1+":");
found[i].display();
}
}
}
catch (NullPointerException ne)
{
System.out.println(ne.toString());
}
可是运行时提示:
E:\java\rubbish>java TestDatajava.lang.NullPointerException
at stuarray.deleteall(student.java:156)
at TestData.main(student.java:191)
1:姓名是:MhicaelJordan
学号是:101
2:姓名是:LaryJordan
学号是:102
3:姓名是:KevienJordan
学号是:103
4:姓名是:QwJordan
学号是:104
deleteall()函数该怎么修改呢?