当前位置: 首页 > 编程笔记 >

Java Comparator比较器实例解析

别浩漫
2023-03-14
本文向大家介绍Java Comparator比较器实例解析,包括了Java Comparator比较器实例解析的使用技巧和注意事项,需要的朋友参考一下

这篇文章主要介绍了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”对象的特定数据字段)。更多的谷歌搜索提出了创建一个新的比较器的想法,它实现了比较器但覆盖了比较方法。我正在尝试的是这样(以及它的其他变体): 编译器有几个理由提出抗议,其中之一是我没有