zoukankan      html  css  js  c++  java
  • ComparatorChain、BeanComparator用法示例(枚举类型排序转)

    工作中遇到按照类的某个属性排列,这个属性是个枚举类型,按照要求的优先级排列。

    可以使用ComparatorChain、BeanComparator、FixedOrderComparator实现。

    举一个例子:

    学生类:包含姓名、年龄、性别、性格。性格是个枚举类型。

    性格类:枚举类型,分为四类:内向,外向,太监,不知道四种类型。

    SortUtil类:排序类。

    Student.java

    Character类:

    SortUtil类:

    moInfoComparator.addComparator(new BeanComparator(“character”,TypeComparator));  

    这个类中首先按照性格属性来排序,利用FixedOrderComparator设置优先级,性格属性Character.UNKOWN排第一,

    然后IN,其次OUT,最后BOTH。如果性格属性相同,按照age排序,true表示逆序(默认排序是从小到大),然后按

    照name,最后按照sex属性排序。

    需要导入commons-beanutils,commons-logging,commons-collections包。

    结果:

    可以看到排序之后首先按照性格排序,性格是枚举类型,排序规则用FixedOrderComparator定义,性格相同按照年龄,所以:

    这四句话的顺序决定了先已哪个属性排序。

  • 相关阅读:
    open jdk卸载
    “玲珑杯”ACM比赛 Round #18---图论你先敲完模板(DP+思维)
    “玲珑杯”ACM比赛 Round #18--最后你还是AK了(搜索+思维)
    hdu 5116--Everlasting L(计数DP)
    HDU 5113--Black And White(搜索+剪枝)
    hdu 5573---Binary Tree(构造)
    HDU 5517---Triple(二维树状数组)
    hdu 5975---Aninteresting game(树状数组)
    hdu 5972---Regular Number(字符串匹配)
    HDU 4570---Multi-bit Trie(区间DP)
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/5737593.html
Copyright © 2011-2022 走看看