使用Comparable接口自定义排序

原创 2018年04月14日 23:05:50

Comparable接口用于强行对实现它的每个类的对象进行排序。在实现该接口的类中,必须实现compareTo()方法,用于指定排序规则。

Comparable的声明:

public class A implements Comparable<A>{}

在实现compareTo()方法后,若将对象保存到列表中,可通过执行Collections.sort()方法进行自动排序;若保存到数组中,可以通过执行Arrays.sort()方法进行自动排序。

示例代码如下:

public class Man implements Comparable<Man>{                //定义类Man,并实现Comarable接口

    private int num;

    private String name;

    private int age;

    public Man(int num,String name,int age){                //对象的构造方法
        this.num=num;

        this.name=name;

        this.age=age;

}

    public int compareTo(Man o){                            //实现compareTo()方法
        if(num>o.num){

            return 1;

}        else if(num<o.num){

            return -1;

}

        return 0;

}

    public String toString(){                                    //重写toString()方法
        StringBuilder sb=new StringBuilder();

        sb.append("运动员的号码是:"+num+"\t");

        sb.append("运动员的名字是:"+name+"\t");

        sb.append("运动员的年龄是:"+age);

        return sb.toString();

}

}

import java.util.*;

public class Test{

    public static void main(String[] args){

        List<Man> list=new ArrayList<Man>();

        list.add(new Man(7,"C罗",33));

        list.add(new Man(10,"梅西",30));

        list.add(new Man(1,"布冯",40));

        System.out.println("排序前:");

        for(Man o:list){

            System.out.println(o);

}

        System.out.println("排序后:");

        Collections.sort(list);                            //执行自动排序

        for(Man o:list){

            System.out.println(o);

}

}

}

总结:

Comparable接口实现自动排序:

1.定义类实现comparable接口

public class A implements Comaprable<A>{}


2.类中实现compareTo()方法,定义排序规则

public int compareTo(A o){};


3.在Test中执行自动排序

Collections.sort();

或    Arrays.sort();

Java-微信企业号接口课程

带你走进当下比较火爆的微信开发企业平台开发,畅享现有互联网的开发资源
  • 2015年01月28日 21:39

Java使用Comparable接口自定义排序

Java经典编程300例之实例063 使用Comparable接口自定义排序 案例见 实例说明 默认情况下,保存在List集合中的数组是不进行排序的,不过可以通过使用Comparable接口自...
  • The_star_is_at
  • The_star_is_at
  • 2017-04-19 21:01:01
  • 1405

Java经典编程300例之实例063 使用Comparable接口自定义排序

实例说明 默认情况下,保存在List集合中的数组是不进行排序的,不过可以通过使用Comparable接口自定义排序规则并自动排序。本实例将介绍如何使用Comparable接口自定义排序规则并自动排序...
  • HanTangSongMing
  • HanTangSongMing
  • 2014-08-01 08:54:07
  • 5311

ArrayList容器排序 comparator接口与comparable接口的使用

1、实体类实现comparable接口,重写compareTo方法 package io; import java.text.DateFormat; import java.text.ParseEx...
  • chunxiaqiudong5
  • chunxiaqiudong5
  • 2016-10-08 20:03:17
  • 1231

Java中Comparable接口的使用

public interface Comparable 当需要对一个对象进行排序时,该对象应该实现Comparable接口,并实现其唯一的方法: int compareTo(T o) ...
  • he90227
  • he90227
  • 2014-07-11 18:50:09
  • 2546

Comparable接口实现和使用方法介绍

1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数...
  • u011467537
  • u011467537
  • 2015-01-07 10:05:48
  • 2074

Java Comparable接口的使用与自定义实现

Comparable接口Comparable接口是一个泛型接口。Java类库中:Byte,Short,Integer,Long,Float,Double,Character,BigTnteger,Bi...
  • DeMonliuhui
  • DeMonliuhui
  • 2017-04-14 14:51:11
  • 805

TreeSet的comparable接口

TreeSet是一个排序的、无重复元素的集合。如果创建自定义对象,并且TreeSet创建时调用的是无参的构造函数,那么必须要实现comparable接口。示例代码:向TreeSet中插入无参的自定义对...
  • u013325266
  • u013325266
  • 2016-09-04 23:56:18
  • 382

Java排序之Comparable接口和Comparator接口的比较和应用示例

Camparable接口和Comparator接口的比较和应用示例
  • zolalad
  • zolalad
  • 2014-06-11 15:39:51
  • 4546

Java 中 Comparable 接口的意义和用法.

在之前的博文中已经介绍了Java中 http://blog.csdn.net/nvd11/article/details/21516075
  • nvd11
  • nvd11
  • 2014-05-29 23:40:13
  • 13805
收藏助手
不良信息举报
您举报文章:使用Comparable接口自定义排序
举报原因:
原因补充:

(最多只允许输入30个字)