在java中实现插入排序时比较多个字段

在java中实现插入排序时比较多个字段,java,string-comparison,insertion-sort,Java,String Comparison,Insertion Sort,我希望用java实现一个插入排序,其中包含一个car对象的数组列表。我希望算法按年份排序,如果年份相等,我希望它按字母顺序排序,然后按型号排序。到目前为止,它正确地按年份排序,但当对象具有相同的年份时,它不会按字母顺序排序。感谢您的帮助 publicstaticarraylistinsertsort(arraylisttosort){ 对于(int i=1;i-1)&&(toSort.get(j.compareTo(key))==1){ toSort.set(j+1,toSort.get(j))

我希望用java实现一个插入排序,其中包含一个car对象的数组列表。我希望算法按年份排序,如果年份相等,我希望它按字母顺序排序,然后按型号排序。到目前为止,它正确地按年份排序,但当对象具有相同的年份时,它不会按字母顺序排序。感谢您的帮助

publicstaticarraylistinsertsort(arraylisttosort){
对于(int i=1;i-1)&&(toSort.get(j.compareTo(key))==1){
toSort.set(j+1,toSort.get(j));
j--;
}
toSort.set(j+1,键);
}
返回排序;
}
以下是在Car类中被重写的compareTo代码:

公共级轿车{
私人双人牛奶咖啡;
私人字符串制作;
私有字符串模型;
私人整数年;
私人双重同化;
私人双首字母价格;
公共汽车(双倍里程、串品牌、串型号、整数年、双倍里程、双倍初始价格){
this.milesPerGallon=milesPerGallon;
make=make;
this.model=模型;
今年=年;
this.milage=milage;
this.initialPrice=初始价格;
}
@凌驾
公共内部比较(车辆o){
int result=this.year.compareTo(o.getYear());
如果(结果==0){
结果=this.make.compareTo(o.getMake());
如果(结果==0){
返回this.model.compareTo(o.getModel());
}否则{
返回结果;
}
}否则{
返回结果;
}
}
}

不选中
比较(…)==1
;检查
>0
。如果不需要保存重复对象,请使用treeSet