Java中的Compare和Comparator的使用方法-创新互联

如何使用Java中的Compare和Comparator?相信很多新手小白对Compare和Comparator的了解处于懵懂状态,通过这篇文章的总结,希望你能有所收获。如下资料是关于Compare和Comparator使用方法的代码。

10年积累的网站制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有恩平免费网站建设让你可以放心的选择与我们合作。
class Apple implements Comparable{
   int id;
   double price;
public Apple(int id, double price) {
   this.id = id;
   this.price = price;
}
public int compareTo(Apple o) {
   //return Double.compare(this.getPrice(),o.getPrice());
   if (Math.abs(this.price-o.price)<0.001)
     return 0;
   else
     return (o.price-this.price)>0?1:-1;
}
@Override
public String toString() {
   return "Apple{" +
       "id=" + id +
       ", price=" + price +
       '}';
}

}```

class AESComparator implements Comparator{

   public int compare(Apple o1, Apple o2) {
     if (Math.abs(o1.price-o2.price)<0.001)
       return 0;
     else{
       return (o1.price-o2.price)>0?1:-1;
     }
   }
}

 实现了Comparable接口的类需要实现compareTo()方法,传入一个外部参数进行比对,实现了Comparator接口的方法需要实现compare()方法,对外部传入的两个类进行比较,从而让外部方法在比较时调用。

 两者的区别是实现Comparator接口代码更加灵活,可以定义某个类的多个比较器,从而在排序时根据实际场景自由调用,而Comparable接口实现后便不能改动。

 总结:
comparator接口:真正要实现的只有compare()方法,需要单独准备出一个类来实现comparator接口,这个类将作为指定类的排序类

public int compare(Emp o1,Emp,o2){
   return o1.id - o2.id
}
这是说如果o1的id - o2的id是正数就升序,如果负数降序。如果0就剔除

 >0  升序
<0降序
=0 重复,不记录
comparable接口

实现该类接口不需要重新创建一个排序的类,使用接口compareble接口排序,只要重写里面的compareTo()方法

 

Collections类是一个包装类,它包含有各种有关集合操作的静态方法。就像一个工具类。

Collections.sort()

sort()排序方法,根据元素的自然排序对指定列表按升序进行排序

public static void sort(List list,Comparator<>),根据指定比较器产生的顺序对指定列表进行排序,此列表内的所有元素都必须可使用指定的比较器相互比较

参数:list——要排序的列表
       C——确定列表顺序的比较器

猜你还想看:

1、java中compareTo()方法比较字符串的示例

2、java如何重写compareTo方法实现类排序

关于Java中的Compare和Comparator的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:Java中的Compare和Comparator的使用方法-创新互联
文章位置:http://scyanting.com/article/dgdips.html