3-3排序问题
1,根据字母排序的话,是根据字母表先后自然顺序的?还是根据ASICC表排序的,我知道中文是根据ASICC排序的
2、
public int compare(Cat o1, Cat o2) {
// 按照名字升序排序
String name1=o1.getName();
String name2=o2.getName();
int n=name1.compareTo(name2);
return n;
}
这个返回的返回值的,为负数,0,正数, 和
Collections.sort(catList, new NameComparator());
这个排序有什么关联阿, 不太懂这里面的原理; 如果大于为负数如何,=0如何,正数又如何呢? 和sort这个方法,有什么联系呢?
3、sort这个方法,进行两个比较又是为了什么呢???
正在回答 回答被采纳积分+1
同学你好
1、是的,如果name1>name2,返回值大于0,也就是为正数,表示升序
2、这里跟赋值并没有多大关系,而是这里这样比较,name1的值小于name2的值,返回负正数,如果name1的值大于name2,返回正整数,说明第一个比第二个大(交换两个的位置);返回值小于0,说明第一个比第二个小(不交换两个的位置);最后通过比较从而实现升序排序
3、是的,这样理解也是可以的
同学可以参考下面这个问答中老师的回答进行理解下
https://class.imooc.com/course/qadetail/274149
祝学习愉快~
同学你好
1、字母排序是按照每个字母的ASCII码的数值来排序的2、compare方法返回值是正整数 ,或负整数,或 0 ;相当于一个标志,如果是正整数,就升序,如果是负整数 就降序,如果是0,则不变;
sort方法是根据指定比较器产生的顺序,对指定列表进行排序;也就是说sort()方法的第一个参数为要排序的集合对象。第二个参数为实现了Comparator接口的对象,在这个对象中指定了排序的规则,比如升序,或者降序
返回值跟sort()方法的关系就是,sort()方法会根据返回值来决定是升序排列还是降序排列
3、sort()方法并不是将这两个参数进行比较,而是第一个参数是要对谁排序,第二个参数是按照什么样的方式进行排序
祝学习愉快~
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星