class Date{
int year;
int mouth;
int day;
Date(int _year,int _mouth, int _day){
year=_year;
mouth=_mouth;
day=_day;
}
public String toString() {
return "Year:Month:Day -- " + year + "-" + mouth + "-" + day;
}
public int compare(Date d){
return this.year>d.year ? 1
: this.year<d.year ? -1
: this.mouth>d.mouth ? 1
: this.mouth<d.mouth ? -1
: this.day>d.day ? 1
: this.day<d.day ? -1 :0;
}
}
public class TestDateSort2{
public static void main(String args[]){
String temp;
Date days[]=new Date[6];
days[0]=new Date(2001, 11, 2);
days[1]=new Date(2009,10, 2);
days[2]=new Date(2008, 2, 2);
days[3]=new Date(2007, 3, 3);
days[4]=new Date(2006, 4, 5);
for(int i=0;i<days.length;i++){
/11/ temp=days[i].toString();
System.out.println(temp);
}
selectSort(days);
for(int i=0;i<days.length;i++){
temp=days[i].toString();
System.out.println(temp);
}
}
public static void selectSort(Date a[]){
Date temp=a[0];
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[j-1].compare(a[j])>0){
temp=a[j];
}
}
if(!(a[i].equals(temp))){
a[i]=temp;
}
}
}
}运行时出现at TestDateSort2.main(TestDateSort2.java:35) 就是/11/那行报错,如果把/11/哪行注释又出现 at Date.compare(TestDateSort2.java:15)
at TestDateSort2.selectSort(TestDateSort2.java:51)
at TestDateSort2.main(TestDateSort2.java:39)
希望有人帮我看看
int year;
int mouth;
int day;
Date(int _year,int _mouth, int _day){
year=_year;
mouth=_mouth;
day=_day;
}
public String toString() {
return "Year:Month:Day -- " + year + "-" + mouth + "-" + day;
}
public int compare(Date d){
return this.year>d.year ? 1
: this.year<d.year ? -1
: this.mouth>d.mouth ? 1
: this.mouth<d.mouth ? -1
: this.day>d.day ? 1
: this.day<d.day ? -1 :0;
}
}
public class TestDateSort2{
public static void main(String args[]){
String temp;
Date days[]=new Date[6];
days[0]=new Date(2001, 11, 2);
days[1]=new Date(2009,10, 2);
days[2]=new Date(2008, 2, 2);
days[3]=new Date(2007, 3, 3);
days[4]=new Date(2006, 4, 5);
for(int i=0;i<days.length;i++){
/11/ temp=days[i].toString();
System.out.println(temp);
}
selectSort(days);
for(int i=0;i<days.length;i++){
temp=days[i].toString();
System.out.println(temp);
}
}
public static void selectSort(Date a[]){
Date temp=a[0];
for(int i=0;i<a.length;i++){
for(int j=i+1;j<a.length;j++){
if(a[j-1].compare(a[j])>0){
temp=a[j];
}
}
if(!(a[i].equals(temp))){
a[i]=temp;
}
}
}
}运行时出现at TestDateSort2.main(TestDateSort2.java:35) 就是/11/那行报错,如果把/11/哪行注释又出现 at Date.compare(TestDateSort2.java:15)
at TestDateSort2.selectSort(TestDateSort2.java:51)
at TestDateSort2.main(TestDateSort2.java:39)
希望有人帮我看看
解决方案 »
- 新手求问Java基础的问题
- JTextArea内容保存到Txt文件,换行问题。
- 刚学linux,请教一个shell脚步编写,内容已经有了,就是不知道应该怎么写!
- 关于线程的执行顺序和实例变量初始化的问题
- 求助,用java怎么连接IBM上的as400上的db2?
- 数组传值调用这样写有错没有啊?急啊~~~~~~
- 一个installanywhere部署程序的问题~~~希望大侠们指导~~
- 请问如何将一个java控制台程序变成Windows下的一个服务
- .pdg文件用什么东东打开???(解决了马上给分)
- 请问如何将float型的数据转换为int型的?
- 关于继承类显示调用父类构造方法的问题- -
- java编了个计算器怎么往手机上移植啊
days[0]=new Date(2001, 11, 2);
days[1]=new Date(2009,10, 2);
days[2]=new Date(2008, 2, 2);
days[3]=new Date(2007, 3, 3);
days[4]=new Date(2006, 4, 5);
你宣告了6個,卻只用了5個,所以最後一個是null。11行注釋的話,temp就沒初始化,編譯不過。
days[0]=new Date(2001, 11, 2);
days[1]=new Date(2009,10, 2);
days[2]=new Date(2008, 2, 2);
days[3]=new Date(2007, 3, 3);
days[4]=new Date(2006, 4, 5);
定义了一个长度6的数组,但是只初始化了5个,
后面的程序引用到了days[5],所以出错
this.year=_year;//楼主此处最好这样改过来
this.mouth=_mouth;
this.day=_day;
}
不知道“/11/”代表什么意思~
Date days[]=new Date[6];
days[0]=new Date(2001, 11, 2);
days[1]=new Date(2009,10, 2);
days[2]=new Date(2008, 2, 2);
days[3]=new Date(2007, 3, 3);
days[4]=new Date(2006, 4, 5);
要给它6个参数可是只给它5个,循环的时候肯定报错啊
int year;
int mouth;
int day;
Date(int _year,int _mouth, int _day){
year=_year;
mouth=_mouth;
day=_day;
}
public String toString() {
return "Year:Month:Day -- " + year + "-" + mouth + "-" + day;
}
public int compare(Date d){
return this.year>d.year ? 1
: this.year<d.year ? -1
: this.mouth>d.mouth ? 1
: this.mouth<d.mouth ? -1
: this.day>d.day ? 1
: this.day<d.day ? -1 :0;
}
/* public boolean equals(Date d){
if((this.year==d.year)&&(this.mouth==d.mouth)&&(this.day==d.day)){
return true;
}else {return false;}
}*/
}
public class TestDateSort2{
public static void main(String args[]){
String temp;
Date days[]=new Date[5];
days[0]=new Date(2000, 11, 2);
days[1]=new Date(2009,10, 2);
days[2]=new Date(2008, 2, 2);
days[3]=new Date(2007, 3, 3);
days[4]=new Date(2006, 4, 5);
for(int i=0;i<days.length;i++){
temp=days[i].toString();
System.out.println(temp);
}
System.out.println();
selectSort(days);
for(int i=0;i<days.length;i++){
temp=days[i].toString();
System.out.println(temp.toString());
}
}
public static void selectSort(Date a[]){
for(int i=0;i<a.length;i++){
Date temp;
temp=a[i];
int last=0;;
for(int j=i+1;j<a.length;j++){
if(temp.compare(a[j])>0){
temp=a[j];
last=j;
}
}
if((a[i].equals(temp))==false){
a[last]=a[i];
a[i]=temp;
}
}
}
}