java程序问题,程序如下,报的错误是什么意思呢
packageentity;classDate{intyear,month,day;Date(inty,intm,intd){year=y;month=m;day=d;}...
package entity;
class Date{
int year,month,day;
Date(int y, int m, int d){
year=y;
month=m;
day=d;
}
public int compare(Date date){
return year > date.year ? 1
: year < date.year ? -1
: month > date.month ? 1
: month < date.month ? -1
: day > date.day ? 1
: day < date.day ? -1
: 0;
}
public String toString(){
return "Year:Month:Day--"+year+"-"+month+"-"+day;
}
}
public class TestDateSort {
public static void main(String[] args){
Date[] days = new Date[5];
days[0]= new Date(2014,8,15);
days[1]= new Date(2013,5,25);
days[2]= new Date(2012,3,12);
days[3]= new Date(2014,9,18);
days[4]= new Date(2011,11,5);
bubbleSort(days);
for(int i =0; i<days.length;i++)
{
System.out.println(days[i]);
}
}
public static Date[] bubbleSort(Date [] a){
int len = a.length;
for(int i = len-1;i>=1;i--){
for(int j = 0;j<=i-1; j++){
if(a[j].compare(a[j-1])>0){
Date temp = a[j];
a[i]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
}
这个才是报错的东西 展开
class Date{
int year,month,day;
Date(int y, int m, int d){
year=y;
month=m;
day=d;
}
public int compare(Date date){
return year > date.year ? 1
: year < date.year ? -1
: month > date.month ? 1
: month < date.month ? -1
: day > date.day ? 1
: day < date.day ? -1
: 0;
}
public String toString(){
return "Year:Month:Day--"+year+"-"+month+"-"+day;
}
}
public class TestDateSort {
public static void main(String[] args){
Date[] days = new Date[5];
days[0]= new Date(2014,8,15);
days[1]= new Date(2013,5,25);
days[2]= new Date(2012,3,12);
days[3]= new Date(2014,9,18);
days[4]= new Date(2011,11,5);
bubbleSort(days);
for(int i =0; i<days.length;i++)
{
System.out.println(days[i]);
}
}
public static Date[] bubbleSort(Date [] a){
int len = a.length;
for(int i = len-1;i>=1;i--){
for(int j = 0;j<=i-1; j++){
if(a[j].compare(a[j-1])>0){
Date temp = a[j];
a[i]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
}
这个才是报错的东西 展开
6个回答
展开全部
package entity;
class Date{
int year,month,day;
Date(int y, int m, int d){
year=y;
month=m;
day=d;
}
public int compare(Date date){
return year > date.year ? 1
: year < date.year ? -1
: month > date.month ? 1
: month < date.month ? -1
: day > date.day ? 1
: day < date.day ? -1
: 0;
}
public String toString(){
return "Year:Month:Day--"+year+"-"+month+"-"+day;
}
}
public class TestDateSort {
public static void main(String[] args){
Date[] days = new Date[5];
days[0]= new Date(2014,8,15);
days[1]= new Date(2013,5,25);
days[2]= new Date(2012,3,12);
days[3]= new Date(2014,9,18);
days[4]= new Date(2011,11,5);
bubbleSort(days);
for(int i =0; i<days.length;i++)
{
System.out.println(days[i]);
}
}
public static Date[] bubbleSort(Date [] a){
int len = a.length;
for(int i = len-1;i>=1;i--){
for(int j = 0;j<=i-1; j++){
if(a[j].compare(a[j+1])>0){ //a[j-1]改成a[j+1],另外,你下面的图片,应该是贴错了
Date temp = a[j];
a[i]=a[j+1];
a[j+1]=temp;
}
}
}
return a;
}
}
追问
按你说的改了,没报错可是运行结果却是
Year:Month:Day--2014-8-15
Year:Month:Day--2014-8-15
Year:Month:Day--2014-8-15
Year:Month:Day--2014-9-18
Year:Month:Day--2014-9-18
追答
再往下a[i]=a[j+1];换成 a[j] = a[j+1]
这种语义错误,得自己找。
展开全部
你应该建个目录entity,把class复制到目录里,然后在上一级目录,运行java entity.TestDataSort
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
环境变量中定义了classpath没有?
你的TestDateSort.class文件在哪里?
都设定正常的话,执行java entity.TestDateSort
而不是java TestDateSort因为你的package是entity
你的TestDateSort.class文件在哪里?
都设定正常的话,执行java entity.TestDateSort
而不是java TestDateSort因为你的package是entity
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看看javac编译之后的class文件在哪个路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个程序报的是数据越界
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at cwl.TestDateSort.bubbleSort(TestDateSort.java:79)
at cwl.TestDateSort.main(TestDateSort.java:59)
这个在你TestDateSort.Java 59行
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at cwl.TestDateSort.bubbleSort(TestDateSort.java:79)
at cwl.TestDateSort.main(TestDateSort.java:59)
这个在你TestDateSort.Java 59行
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |