Java根据字符串对自定义对象列表进行排序 [英] Java to sort list of custom object on the basis of string

查看:257
本文介绍了Java根据字符串对自定义对象列表进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

class Person 
 {
 private String name;
 private String profession;
}

专业具有值:

  • 工程师
  • 医生
  • 老师
  • 学生

我有人员列表,想根据职业对其进行排序.工程师先来,然后是医生,然后是老师,然后是学生.

I have list of person and want to sort it on the basis of Profession. engineer comes first then Doctor and then Teacher and then student.

是否可以使用可比的界面对其进行排序.

Is it possible to sort it with comparable interface.

推荐答案

枚举

如果将 profession 字段替换为 enum :

class Person implements Comparable<Person> {
    private String name;
    private Profession profession;

    // by this we'll define natural ordering based on ordering
    // in which `Profession` enum values are declared
    @Override
    public int compareTo(Person p) {
        return this.profession.compareTo(p.profession);
    } 
}

这是专业枚举:

public enum Profession {
    ENGINEER("engineer"), DOCTOR("Doctor"), TEACHER("Teacher"), STUDENT("student");
    
    private String displayName;
    
    Profession(String dn) {
        this.displayName = dn;
    }

    @Override
    public String toString() {
        return this.displayName;
    }
}

如果您不熟悉Java中的枚举功能,请参见 Oracle教程.

If you are new to the enum facility in Java, see Oracle tutorial.

这篇关于Java根据字符串对自定义对象列表进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆