当前位置: 首页 > 网络应用技术

元素分类可比器和比较器有什么区别?

时间:2023-03-07 15:36:10 网络应用技术

  在Java语言中,可比较和比较器用于排序元素,但是两者具有基本差异。它们也是常见的访谈问题,因此今天我们聚集在一起。

  让我们从两者的字面意义中理解它。可比较转化为中文表示“比较”,比较器表示“比较器”。可比较的结尾,表明它具有一定的能力,比较器以-or或-or结尾,表明它是比较参与者。这是两者之间的差异。

  两者都是顶级接口,但是方法和用法是不同的。让我们在下面看一下。

  可比较的接口仅具有一个方法CompareTo,它实现了可比接口并重写CompareTo方法以实现某个类排序。它支持类型的集合。Sort和Arrays.Sort。

  当我们不使用可比性时,该程序的执行是:

  程序执行结果如下:从上图可以看出,当自定义类人无法实现可兼容时,列表集合未排序,并且只能用作元素输出的顺序。

  但是,目前,老板需要:需要根据人对象的年龄属性来订购,也就是说,根据年龄属性从大到小。目前,我们可以使用。本文的主角出现了。

  可比较的使用是在自定义对象类中实现可比接口,并重写CompareTo方法以实现自定义排序规则。特定的实施代码如下:

  该程序的执行结果如下图所示:

  比较分类方法说明了比较对象的比较方法的参数p。将排序规则与当前对象和要比较的对象进行比较,然后返回一个int类型的值。从小到大的排序规则是:使用当前对象值最小化比较对象的值;从大到小的排序规则恰恰相反:比较对象的值降低为当前对象的值。

  注意:如果自定义对象没有实现可比接口,则无法使用Collections.Sort方法对其进行排序。编译器将提示以下错误:

  比较器和可比较不同。可比较分类的方法是比较,比较分类方法是比较的。特定的实施代码如下:

  该程序的执行结果如下图所示:

  扩展:比较器匿名比较器可以除了创建自定义比较器外,还可以通过匿名类别更快,方便地完成自定义比较器的功能。特定代码的实现如下:

  该程序的执行结果如下图所示:

  通过上面示例的实现代码,我们可以看到,使用可比性必须修改原始类,也就是说,如果要对类进行排序,则必须在该可比接口中实现比较方法并重写它,因此可比较是更多像“右”是“右”内部界面。

  比较器的使用是不同的,比较器不需要修改原始类,也就是说,在最极端的情况下,即使第三方提供了个人类,我们仍然可以创建一个新的自定义比较器比较器实现第三方人士的排序函数。也就是说,通过比较器接口,可以将其与原始类别分解,并且可以在不修改原始类的情况下实现排序功能,因此可以将比较器视为一个“外部”接口。

  可比较和比较器用于实现元素分类。他们两个之间的区别如下:

  因此,一句话中的两者之间的差异可以视为“内部”排序接口,而比较器是“外部”排序的接口。

  正确和非审判,破坏其声誉并迷失。

  博客简介:帖子-80年代的程序员已经“持续”了12年,爱好:阅读,慢跑,羽毛球。

  我的公共帐户:Java面试真实的问题分析

  本文已包含在我的文章集合中:https://gitee.com/mydb/interview