public List<parm> getparmByComparator(List<parm> list){
//list 为需要排序的list
Collections.sort(list,new MyComparator());
return detailList;
}
//重写compare方法,
public class MyComparator implements Comparator<parm>{
//构造排序方法
@Override
public int compare(parmarg0, parmarg1) {
int returns=0;
if(StringUtil.isEmpty(arg0.getPercentStr())){
arg0.setPercentStr("(0%)");
}
if(StringUtil.isEmpty(arg1.getPercentStr())){
arg1.setPercentStr("(0%)");
}
double b0=Double.parseDouble((arg0.getPercentStr().split("%")[0].substring(1)));
double b1=Double.parseDouble((arg1.getPercentStr().split("%")[0].substring(1)));
double jg=b0-b1;
if(jg<0){
returns=1;
}else if(jg==0){
returns=0;
}else if(jg>0){
returns=-1;
}
if(arg0.getPercentStr().equals("(0%)")){
arg0.setPercentStr(null);
}
if(arg1.getPercentStr().equals("(0%)")){
arg1.setPercentStr(null);
}
return returns;
}
}
//list 为需要排序的list
Collections.sort(list,new MyComparator());
return detailList;
}
//重写compare方法,
public class MyComparator implements Comparator<parm>{
//构造排序方法
@Override
public int compare(parmarg0, parmarg1) {
int returns=0;
if(StringUtil.isEmpty(arg0.getPercentStr())){
arg0.setPercentStr("(0%)");
}
if(StringUtil.isEmpty(arg1.getPercentStr())){
arg1.setPercentStr("(0%)");
}
double b0=Double.parseDouble((arg0.getPercentStr().split("%")[0].substring(1)));
double b1=Double.parseDouble((arg1.getPercentStr().split("%")[0].substring(1)));
double jg=b0-b1;
if(jg<0){
returns=1;
}else if(jg==0){
returns=0;
}else if(jg>0){
returns=-1;
}
if(arg0.getPercentStr().equals("(0%)")){
arg0.setPercentStr(null);
}
if(arg1.getPercentStr().equals("(0%)")){
arg1.setPercentStr(null);
}
return returns;
}
}
本文详细阐述了在Java集合框架中使用自定义比较器进行列表排序的方法,包括重写compare方法来实现特定的排序逻辑,确保排序过程既高效又准确。
768

被折叠的 条评论
为什么被折叠?



