Java的比较器Comparable与Comparator
2021-03-14 10:29
标签:mys nts double 进入 情况 linked new 个数 直接 在Java中有两个比较器:Comparable、Comparator 对于Integer、Double等等类型,可以直接对他们进行比较,因为已经实现了比较的方式,然而在平时常常会面临需要对集合进行排序的情况,这种情况下我们需要人工定义Java比较器,告诉程序两个对象如何比较大小。 Comparable称为内部比较器,因为我们创建需要排序的类还要实现这个类,在创建之初就要人工规定好了排序方式。 实现这个类,然后我们需要重写他的 比较规则是:如果 如果调用compare方法大于0,就把前一个数和后一个数交换,也就是把大的数放后面了,即所谓的升序了。如果小于等于0,那么就不会交换了。 Comparator称为外部比较器,因为Comparator可以脱离所需要比较的类,比如要对没有实现Comparable的类进行比较,存在List中,这时候如果要排序的话,可以在Collections.sort() 中传入一个Comparator比较器,重写该比较器的compare方法即可。 Java的比较器Comparable与Comparator 标签:mys nts double 进入 情况 linked new 个数 直接 原文地址:https://www.cnblogs.com/linzedian/p/14028135.htmlComparable
compareTo
方法,传递一个类进入,与当前本身类进行比较,返回值是一个int类型。本身 - 传入 > 0
,且返回的是正数,那么就是按照升序排列,如果返回的是负数,就是按照降序排列。也可以看成return a-b
是升序,return b-a
是降序。import java.util.*;
public class Test {
public static void main(String[] args) {
MySort m1 = new MySort();
MySort m2 = new MySort();
m1.setId(10);
m2.setId(8);
LinkedList
Comparator
import java.util.*;
public class Test {
public static void main(String[] args) {
MySort m1 = new MySort();
MySort m2 = new MySort();
m1.setId(10);
m2.setId(8);
LinkedList
文章标题:Java的比较器Comparable与Comparator
文章链接:http://soscw.com/index.php/essay/64528.html