关于Compartor接口的compare()方法
来源:3-3 案例:对宠物猫按名字进行排序
浅梦sky
2020-10-22 12:04:30
想请教下老师:
1、Collections.sort(list,new NameCompartor() )这个方法是和compare()方法,排序的原理是什么?
能否用一个示意图或者一个简单的例子说明下
2、执行String的str1.CompareTo(str2)方法返回的是str1与str2的差值,那么这个差值怎么与Collections.sort()实现的升序排序,也希望老师可以用一个例子说明下
在这里输入代码,可通过选择【代码语言】突出显示
1回答
同学你好,1.sort()方法的第一个参数为要排序的集合对象。第二个参数为实现了Comparator接口的对象
在NameCompartor类中实现了接口Comparator, 重写compare方法进行比较,然后直接在测试类调用Collections.sort方法进行排序;
2. 排序是根据返回的值进行排序的。compare()方法用来比较用来排序的两个参数。方法返回name1.compareTo(name2),在进行排序时,如果两个数比较结果大于0,就把前一个数和后一个数交换,也就是把大的数放后面了。如果比较结果小于0,不进行交换。最终形成升序排序。下图所示:

3. name1.compareTo(name2)返回n,表示如果两个字符串的比较结果大于0,就把前一个自字符串和后一个字符串交换,也就是把大的字符串放后面了,即所谓的升序了!
如果对返回值取反的话就是两个字符串结果小于0,就把前一个自字符串和后一个字符串交换,也就是把小的字符串放后面了,就成了降序了。
相似问题