java比较器comparator使用示例分享

 更新时间:2014年03月06日 15:08:22   作者:  
这篇文章主要介绍了java比较器comparator使用示例,需要的朋友可以参考下

复制代码 代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ComparatorTest implements Comparator<stuEntity> {

    /**
     * @param args
     */
    public static void main(String[] args) {
        List<stuEntity> list = new ArrayList<stuEntity>();
        stuEntity stud1=new stuEntity();
        stud1.setAge(10);
        stud1.setName("abc");
        stuEntity stud2=new stuEntity();
        stud2.setAge(10);
        stud2.setName("bdc");
        stuEntity stud3=new stuEntity();
        stud3.setAge(5);
        stud3.setName("bdd");
        stuEntity stud4=new stuEntity();
        stud4.setAge(30);
        stud4.setName("aad");

        list.add(stud1);
        list.add(stud2);
        list.add(stud3);
        list.add(stud4);

        Collections.sort(list, new ComparatorTest());

        for(stuEntity stud:list){
            System.out.println(stud.getAge()+":"+stud.getName());
        }
    }
/**
 *
 */
    @Override
    public int compare(stuEntity stud1, stuEntity stud2) {
        //根据姓名排序
        int maxname=stud1.getName().compareTo(stud2.getName());
        if(maxname!=0)
            return maxname;
        //根据年龄排序
        int maxage=stud1.getAge()-stud2.getAge();
        //if(maxage!=0)
            return maxage;
    }
}

输出:

复制代码 代码如下:

30:aad
10:abc
10:bdc
5:bdd

java的比较器很有用,实现Comparator接口的compare()这个回调方法来制定排序规则,然后调用Collections.sort(list, new ComparatorTest());就可以将List进行排序,很方便

使用时要注意compare()方法中的return的先后顺序,优先的排序规则要写在前面

实体类:

复制代码 代码如下:

/**
 * 学生实体类
 *
 */
public class stuEntity {
    private int studentId;// 学号
    private String name;
    private int age;
    private String sex;// 性别
    private int roomNumber;// 房间号
    private String degree;//学位
    private int grade;//年级
    private String deviceNumber;// 设备号
    private int groupNumber;// 所属的小组
    private int javaScore;// java成绩
    private int netScore;// NET成绩
    public String getDegree() {
        return degree;
    }

    public void setDegree(String degree) {
        this.degree = degree;
    }

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }

 

    /**
     * 初始化有参构造函数
     *
     * @param id
     * @param name
     * @param age
     * @param sex
     * @param roomNumber
     * @param deviceNumber
     * @param groupNumber
     * @param javaScore
     * @param netScore
     */
    public stuEntity(String name, int age, String sex, int roomNumber,
            String deviceNumber, int groupNumber, int javaScore, int netScore) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.roomNumber = roomNumber;
        this.deviceNumber = deviceNumber;
        this.groupNumber = groupNumber;
        this.javaScore = javaScore;
        this.netScore = netScore;
    }

    /**
     * 无参构造函数
     */
    public stuEntity() {

    }

    public int getJavaScore() {
        return javaScore;
    }

    public void setJavaScore(int javaScore) {
        this.javaScore = javaScore;
    }

    public int getNetScore() {
        return netScore;
    }

    public void setNetScore(int netScore) {
        this.netScore = netScore;
    }

   

    public int getStudentId() {
        return studentId;
    }

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getRoomNumber() {
        return roomNumber;
    }

    public void setRoomNumber(int roomNumber) {
        this.roomNumber = roomNumber;
    }

    public String getDeviceNumber() {
        return deviceNumber;
    }

    public void setDeviceNumber(String deviceNumber) {
        this.deviceNumber = deviceNumber;
    }

    public int getGroupNumber() {
        return groupNumber;
    }

    public void setGroupNumber(int groupNumber) {
        this.groupNumber = groupNumber;
    }
}

相关文章

  • JDBC下Idea添加mysql-jar包的详细过程

    JDBC下Idea添加mysql-jar包的详细过程

    这篇文章主要介绍了JDBC下Idea添加mysql-jar包的详细过程,添加jar包首先到官网下载jar包,然后idea导入jar包,在就是检查,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • 快速入手IntelliJ IDEA基本配置

    快速入手IntelliJ IDEA基本配置

    IntelliJ IDEA是java编程语言开发的集成环境,本篇主要介绍了对它的安装、配置maven仓库、调试方法、常用的插件推荐、快捷键大全与常用快捷键说明,感兴趣的朋友一起看看吧
    2021-10-10
  • Java基础 Servlet监听器详解

    Java基础 Servlet监听器详解

    这篇文章主要介绍了Java基础 Servlet监听器详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • 教你使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis)

    教你使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis)

    今天教大家使用idea搭建ssm详细教程(Spring+Spring Mvc+Mybatis),文中有非常详细的图文介绍及代码示例,对正在学习使用idea的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • SpringBoot打印启动时异常堆栈信息详解

    SpringBoot打印启动时异常堆栈信息详解

    在本篇文章里小编给大家整理的是关于SpringBoot打印启动时异常堆栈信息,有需要的朋友们可以学习下。
    2019-11-11
  • C#创建Web应用程序代码实例

    C#创建Web应用程序代码实例

    本文主要通过实例代码介绍了C#创建Web应用程序,需要的朋友可以参考下
    2017-04-04
  • java项目实现统一打印入参出参等日志

    java项目实现统一打印入参出参等日志

    这篇文章主要介绍了java项目实现统一打印入参出参等日志方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • SpringBoot整合Freemarker的基本步骤

    SpringBoot整合Freemarker的基本步骤

    这篇文章主要介绍了SpringBoot整合Freemarker的基本步骤,添加依赖及添加相关配置的实例代码详解,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • java 动态生成SQL的实例讲解

    java 动态生成SQL的实例讲解

    下面小编就为大家带来一篇java 动态生成SQL的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • java模拟post请求登录猫扑示例分享

    java模拟post请求登录猫扑示例分享

    这篇文章主要介绍了java模拟post请求登录猫扑的小示例,需要的朋友可以参考下
    2014-02-02

最新评论