1. 利用BeanComparator对List<Object>根据属性进行排序

        String daXiaoOrder[] = {"很小","小","中","大","特大"};
String tianDuOrder[] = {"不甜","甜","很甜"}
ComparatorChain comparatorChain = new ComparatorChain();
FixedOrderComparator fixedOrderComparator1 = new FixedOrderComparator(daXiaoOrder);
FixedOrderComparator fixedOrderComparator2 = new FixedOrderComparator(tianDuOrder);
//daXiao 和 tianDu 是Apple类的成员变量
comparatorChain.addComparator(new BeanComparator("daXiao",fixedOrderComparator1));
comparatorChain.addComparator(new BeanComparator("tianDu",fixedOrderComparator2));
Collections.sort(appleList, comparatorChain);

2. 利用Comparator对List<String>排序

 1 public static final Map<String, Integer> CHANNEL_ORDER_MAP = new HashMap<String, Integer>() {
2 private static final long serialVersionUID = -8011287503097413378L;
3
4 {
5 put("A", 0);
6 put("B", 1);
7 put("C", 2);
8 put("D+", 3);
9 put("E", 4);
10 put("F", 5);
11 put("G", 6);
12 put("H", 7);
13 put("I", 8);
14 put("J", 9);
15 put("K", 10);
16 }
17 };
18
19 /**
20 * 对渠道类型编码排序
21 *
22 * @param list 排序列表
23 */
24 public static void sortChannel(List<String> list) {
25 // 进行排序操作
26 list.sort(new Comparator() {
27 @Override
28 public int compare(Object o1, Object o2) {
29 // 处理不存在指定排序列表中的字符串
30 if (CHANNEL_ORDER_MAP.get(o1) == null || CHANNEL_ORDER_MAP.get(o2) == null) {
31 return 1;
32 }
33 return CHANNEL_ORDER_MAP.get(o1).compareTo(CHANNEL_ORDER_MAP.get(o2));
34 }
35 });
36 }

利用Comparator对枚举类型进行排序的实现的更多相关文章

  1. Java之——利用Comparator接口对多个排序条件进行处理

    转载自:http://blog.csdn.net/l1028386804/article/details/56513205 膜拜大神··· 一.需求 假设现在有个如此的需求:需要对一个这样的雇员列表进 ...

  2. 我的Java开发学习之旅------>Java利用Comparator接口对多个排序条件进行处理

    一需求 二实现Comparator接口 三验证排序结果 验证第一条件首先按级别排序级别最高的排在前面 验证第二条如果级别相等那么按工资排序工资高的排在前面 验证第三条如果工资相当则按入职年数排序入职时 ...

  3. ComparatorChain、BeanComparator用法示例(枚举类型排序转)

    工作中遇到按照类的某个属性排列,这个属性是个枚举类型,按照要求的优先级排列. 可以使用ComparatorChain.BeanComparator.FixedOrderComparator实现. 举一 ...

  4. [CLR via C#]15. 枚举类型和位标志

    一.枚举类型 枚举类型(enumerated types)定义了一组"符号名称/值"配对. 例如,以下Color类型定义了一组符号,每个符号都标识一种颜色: internal en ...

  5. 重温CLR(十一) 枚举类型、位标志和数组

    枚举类型 枚举类型(enumerated types)定义了一组"符号名称/值"配对.例如,以下Color类型定义了一组符号,每个符号都标识一种颜色: internal enum ...

  6. Java开发笔记(五十六)利用枚举类型实现高级常量

    前面介绍了联合利用final和static可实现常量的定义,该方式用于简单的常量倒还凑合,要是用于复杂的.安全性高的常量,那就力不从心了.例如以下几种情况,final结合static的方式便缺乏应对之 ...

  7. 5月11日 ArrayList集合复习、特殊集合、枚举类型

    一.ArrayList集合复习 //定义 ArrayList al = new ArrayList(); //添加元素 al.Add(); //插入元素 al.Insert(,); //查看个数 in ...

  8. C# 获取与解析枚举类型的 DescriptionAttribute

    原文:C# 获取与解析枚举类型的 DescriptionAttribute System.ComponentModel.DescriptionAttribute 这个 Attribute,经常被用来为 ...

  9. golang枚举类型 - iota用法拾遗

    在c#.java等高级语言中,经常会用到枚举类型来表示状态等.在golang中并没有枚举类型,如何实现枚举呢?首先从枚举的概念入手. 1.枚举类型定义 从百度百科查询解释如下:http://baike ...

  10. TypeScript中的枚举类型

    TypeScript拓展了Javascript原生的标准数据类型集,增加了枚举类型(enmu)和其他语言一 样 它提供我们一种数字类型的值,用来设置由于辨别的名字和方法 enum Students { ...

随机推荐

  1. huawei--配置链路聚合

    huawei--配置链路聚合 项目要求: LSW1和LSW2之间配置链路聚合,链路聚合分为手工和lacp两种模式.配置完后查看链路聚合状态. 项目实施: (vlan10 20 30的创建命令vlan ...

  2. gitlab-CICD共享runner基本配置

    gitlab-CICD共享runner基本配置 使用docker部署runner 多个项目使用共享runner 部署机器与runner不在同一台服务器上(使用ssh部署) 部署runner 部署镜像 ...

  3. USB从机主动断开连接

    目录 在一些情况下,需要USB口的引脚复用成其他功能,比如说PB10.PB11要复用成定时器输出引脚:或者需要USB从机主动断开,类似某些杀毒软件带的"安全弹出",不过杀毒软件操作 ...

  4. 错误:/etc/sudoers: syntax error near line

    错误 yang@ubuntu:/etc$ sudo cat sudoers >>> /etc/sudoers: syntax error near line 26 <<& ...

  5. 靶机练习4: SolidState

    信息收集阶段 全端口扫描,查询目标靶机开放端口和服务 sudo nmap -p- -n -v -sS --max-retries=0 172.16.33.35 进行服务版本扫描 nmap -p22,2 ...

  6. 在k8s中使用harbor仓库

    在k8s中使用harbor仓库 修改每个node上的docker认证仓库 将每个node节点上的docker同样需要配置可信任仓库 vi /etc/docker/daemon.json #修改为 {& ...

  7. Kubernetes--Pod存活性探测(设置HTTP探针)

    基于HTTP的探测(HTTPGetAction)向目标容器发起一个HTTP请求,根据其响应码进行结果判定,响应码形如2xx或者3xx时表示检测通过."sepc.containers.live ...

  8. C - Perform the Combo

    C - Perform the Combo 思路:当读到这个题的时候,第一反应就是枚举,但是,无线超时,没办法,那就变,利用前缀和,减少时间. 代码: #include<iostream> ...

  9. Visusl Studio使用技巧

    一.快捷键的使用 1.使用Ctrl+K,Ctrl+E,可以清理代码,包括清理无用的using和对齐代码: 也可以使用快捷按钮实现该功能,如下图: 2.使用Ctrl+K,Ctrl+D,可以对齐代码 建议 ...

  10. 第三周day3

    第三周day3,星期三 所花时间:1h 代码量:48 博客量:1 了解知识:Button触发点击事件的三种实现方式,onClick.匿名内部类方式.接口方式.