关于java Collections类下的sort方法的一个问题 /麻烦解释一下输出结果,sort是怎么进行排序的?

发布网友 发布时间:2022-04-23 15:38

我来回答

2个回答

热心网友 时间:2023-10-08 18:13

您好,提问者:
1、Collections.sort需要根据Comparable接口来指定排序顺序,排序顺序规则是0是重复不存入、1是升序、-1是降序。问题在于return this.xx这里,可以写成return new Integer(this.termfrequency).compareTo(f.termfrequency);因为Integer本身实现了Comparable接口。
2、我记得compareTo(这里传入的是一个Object obj的参数吧?这里控制一下

@Override
public int compareTo(Object obj){
if(obj instanceof Feature){
new throw RuntimeException("不是父类对象");
}
return new Integer(this.termfrequency).compareTo(f.termfrequency);
}

热心网友 时间:2023-10-08 18:13

默认按ASCII码排序,一位一位的比较,应该排了3次
第一次比较第一位全部是a,所以顺序没变
第二次第二位排序[a0, a1, a12, a11, a10, a2, a3, a4, a5, a6, a7, a8, a9]

第三次第三位排序[a0, a1, a10, a11, a12, a2, a3, a4, a5, a6, a7, a8, a9]追问谢谢,其实刚发布完问题,我就找到了答案了,这里的sort根据传入数据类型调用了String类的的compareTo方法,比较基于字符串中各个字符的 Unicode 值,对string数据是按位依次对比的。具体是排了三次还是逐个比较一次排好就不清楚了。
还是感谢,至少比另一位直接复制粘贴的仁兄好。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com