【发布时间】:2011-07-20 06:09:58
【问题描述】:
如何在不使用比较器的情况下在 java 中对 ArrayList 进行排序?
我已经使用了比较器,但它对我来说不能正常工作,这意味着数据不是特别的方式。
我有一个包含以下属性的数组列表...
getTotal(),
getID(),
getRank(),
getItemName(),
getFinalRank()
我已将这一切归为一个数组列表itemWiseDetails
现在我想制作 poi 报告并显示所有这些详细信息,但根据其排名 项目名称。还有一件事我的排名在字符串中,所以当我尝试根据这个排名进行排序时,它会将 N/A 数据作为 0 排名,所以它首先显示然后显示第一排名,然后显示第二然后继续..
所以,我想在没有比较器的情况下对这个 itemWiseDetails 列表进行排序
提前致谢,
我已经用这种方式实现了比较器
public int compareTo(Object itemDetailVO)
{
if (!(itemDetailVOinstanceof ItemDetailVO)) throw new ClassCastException("AItemDetailVOobject expected.");
int otherItemRank = Integer.parseInt(((ItemDetailVO) itemDetailVO).getRank().toString());
return Integer.parseInt(this.trLotRank.toString())- otherBidderRank;
}
【问题讨论】:
-
I have already used comparator and it work not properly for me不应该这样 -
包含以下属性 - 我希望列表包含具有命名属性而您没有的对象将属性添加到列表或子类 ArrayList 并将属性添加到子类...
-
没有this 工作?
-
“对我不起作用”是一个奇怪的断言。它有效或无效,无论是您还是其他人按下“运行”按钮都没有关系。我可以向你保证,java 比较器“工作”。那么,您能否发布您的比较器代码以便我们进行更正?正如其他人所说,比较器是正确的方法。
-
您真正的问题是 1) 无法说明您的要求是什么,2) 无法对实现您的要求的
Comparator进行编码/调试,以及 3) 显然不是了解Comparator和Comparable之间的区别。
标签: java sorting arraylist comparator