这篇文章主要介绍了Java Comparator比较器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
说几点需要注意的,提醒自己即可:
以下是单独定义一个比较器的类,实现了Comparator中的compare方法。(要在Main方法外面定义类噢)
一定是compare而不是Compare哦
package xixixi; import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); Student[] arr = new Student[n]; for(int i=0;i<n;i++) { String name = in.next(); int num = in.nextInt(); arr[i] = new Student(name, num); } } } class Student{ String name; int num; Student(String s,int n){ name = s; num = n; } public String toString() { return name+"-"+num; } } class NameComparator implements Comparator<Student>{ public int compare(Student o1,Student o2) { if(o1.name.compareTo(o2.name)>0) return 1; else if(o1.name.compareTo(o2.name)<0) return -1; else return o1.name.compareTo(o2.name); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
我在理解和使用比较器方面有一个问题,有人问我以下问题: 我在一个单独的Employee类中使用compareTo比较器接口来调用比较器对象的重载使用。 任何帮助,建议,代码行将非常感谢!!
本文向大家介绍AngularJS equal比较对象实例详解,包括了AngularJS equal比较对象实例详解的使用技巧和注意事项,需要的朋友参考一下 使用情况 1 首先,所有满足 a === 3 这种的对象,在angular.equals(a,b)中都会返回真 2 所有对象的类型,以及属性值都相同的,也会返回真 3 NaN和NaN也会返回真(在javascript中,返回的是假) 4 正则也
本文向大家介绍KnockoutJS数组比较算法实例详解,包括了KnockoutJS数组比较算法实例详解的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了KnockoutJS数组比较算法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前端开发中,数组是一种非常有用的数据结构。这篇博客会解释并分析KnockoutJS实现中使用的数据
Java8中的类定义了一个方法,该方法需要一个参数。下面是方法签名: 在Java8中,下面的代码可以很好地工作。但是,我预计会出现类似“Integer类没有定义compareTo(Integer,Integer)”这样的编译错误。 有人能解释为什么可以将的实例传递给需要实例的方法,尽管它们的方法签名不兼容?
问题内容: 我正在尝试编写一种利用最小优先级队列的算法,因此我在Google上四处查看,发现了PriorityQueue。不过,似乎要使用它,我将需要告诉它我如何确定优先级,并且这样做的方法是使用比较器(我想比较“ Node1”的特定数据字段)对象)。更多的谷歌搜索提出了创建一个新的比较器的想法,该比较器实现了Comparator但覆盖了compare方法。我正在尝试的是这个(以及它的其他变体):
我正在尝试编写一个使用最小优先级队列的算法,所以我在谷歌上四处查看并找到了PriorityQueue。不过,似乎为了使用它,我需要告诉它我希望它如何排列优先级,并且这样做的方法是使用比较器(我想比较我的“Node1”对象的特定数据字段)。更多的谷歌搜索提出了创建一个新的比较器的想法,它实现了比较器但覆盖了比较方法。我正在尝试的是这样(以及它的其他变体): 编译器有几个理由提出抗议,其中之一是我没有