zoukankan      html  css  js  c++  java
  • 浅谈 java 比较器

    java 比较器有两种实现方式,分别是需要排序类内部实现 Comparable 的 compareTo 方法 或者是 新建比较器类 实现 Comparator 接口的 Compare方法,下面是代码实现,首先建立 需要比较的 Person类,这里有一个点需要提一下,两种比较器的方法返回值是 int 类型,只有正数、负数和零三个选项,返回正数表示调用该比较器的方法大于参数列表的元素,那么这个参数元素安排到实例元素之前,如果返回负数表示实例元素小于参数元素,负数表示将参数元素至于实例元素之后,形成升序排序。即可以简单归纳为 实例元素-参数元素为升序,参数元素-实例元素为降序,Compare中的前一个元素减后一个为升序,后减前为降序。

    1. Person 实现Comparable 的 compareTo 方法

     1 package CollectTest;
     2 
     3 public class Person implements Comparable<Person> {
     4     
     5     int id ;
     6     
     7     String name;
     8     
     9     short age;
    10     
    11     String work;
    12 
    13     public Person() 
    14     {
    15         
    16     }
    17     
    18     public Person(int id,String name,short age,String work) 
    19     {
    20         this.id = id;
    21         this.name = name;
    22         this.age = age;
    23         this.work = work;
    24     }
    25     
    26 
    27     @Override
    28     public String toString() {
    29         return "Person [id=" + id + ", name=" + name + ", age=" + age + ", work=" + work + "]";
    30     }
    31 
    32     
    33     
    34     @Override
    35     public int compareTo(Person o) {
    36         return o.id-this.id;
    37     }
    38     
    39 }

    2.新建比较类实现比较

     1 package CollectTest;
     2 
     3 import java.util.Comparator;
     4 
     5 public class Comparable implements Comparator<Person> {
     6 
     7     @Override
     8     public int compare(Person o1, Person o2) {
     9         return o1.id-o2.id;
    10     }
    11 
    12 }
  • 相关阅读:
    MySQL优化实例
    MySQL优化步骤和my.cnf优化配置
    linux高负载下mysql数据库彻底优化
    MySQL配置文件my.cnf详解
    CentOS Linux下MySQL 5.1.x的安装、优化和安全配置
    Apache 配置文件详解
    [LeetCode] Number of Boomerangs
    [LeetCode] Binary Watch
    [LeetCode] Reverse Linked List
    [LeetCode] Maximum Product of Three Numbers
  • 原文地址:https://www.cnblogs.com/aierben/p/14483772.html
Copyright © 2011-2022 走看看