完美解决Collections.sort对double不能排序问题

 Collections.sort(ag.state_list,new Comparator<State>(){ public int compare(State sta1, State sta2) {  return sta1.score.compareTo(sta2.score);} });

 

上面一行的代码本以是对ag.state_list(state_list是List,存储的对象State)进行排序,排序的标准是State的属性score(定义为double)。可是sta1.score.compareTo(sta2.score);的下面就会出现红色波浪线,显示错误:cannot invoke compareTo(double) on the primitive type double

 

解决的方法是: compareTo只适合实现了Comparable的对象类型,

第一种修改方法:

 

 Collections.sort(ag.state_list,new Comparator<State>(){ public int compare(State sta1, State sta2) {  return new Double(sta1.score).compareTo(new Double(sta2.score));}});

 

第二种解决方法是:double score;//对score的定义

                  修改为:Double score;  //score改为double的包装类Double类型

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值