1:先建需要排序的属性Model

 package com.msqsoft.app.queuing.util;

 public class ListOrderByModel {

     private String queueNumber;

     private Integer status;

     public String getQueueNumber() {
return queueNumber;
} public void setQueueNumber(String queueNumber) {
this.queueNumber = queueNumber;
} public Integer getStatus() {
return status;
} public void setStatus(Integer status) {
this.status = status;
} public ListOrderByModel(String queueNumber, Integer status){
this.queueNumber = queueNumber;
this.status = status;
}
}

2:建立排序 Util 定义排序方式 需实现 Comparator

 package com.msqsoft.app.queuing.util;

 import java.util.Comparator;

 public class ListOrderByComparatorModelUtil implements Comparator {

     @Override
public int compare(Object obj1, Object obj2) { ListOrderByModel orderByModel1 = (ListOrderByModel)obj1;
ListOrderByModel orderByModel2 = (ListOrderByModel)obj2; // 先排序status
if (orderByModel1.getStatus() > orderByModel2.getStatus()) {
return -1;
} else if (orderByModel1.getStatus() < orderByModel2.getStatus()) {
return 1;
} else {
// 排序号码
return orderByModel1.getQueueNumber().compareTo(orderByModel2.getQueueNumber());
}
} }

3 : 测试

 package web;

 import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List; import com.msqsoft.app.queuing.util.ListOrderByComparatorModelUtil;
import com.msqsoft.app.queuing.util.ListOrderByModel; public class Test1 {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws ParseException { List list = new ArrayList();
list.add(new ListOrderByModel("A002", 0));
list.add(new ListOrderByModel("A001", 0));
list.add(new ListOrderByModel("A003", 0));
list.add(new ListOrderByModel("A006", 6));
list.add(new ListOrderByModel("A004", 0));
list.add(new ListOrderByModel("A008", 5));
list.add(new ListOrderByModel("A005", 0));
list.add(new ListOrderByModel("A007", 6)); ListOrderByComparatorModelUtil comparator = new ListOrderByComparatorModelUtil();
Collections.sort(list, comparator);
for (int i = 0; i < list.size(); i++) {
ListOrderByModel listMode = (ListOrderByModel) list.get(i);
System.out.println(listMode.getStatus() + "," + listMode.getQueueNumber());
}
}
}

List自定义排序(可多条件)的更多相关文章

  1. mysql查询区分大小写与自定义排序

    mysql查询区分大小写: SELECT id,developer FROM products WHERE developer != '' and developer = binary('LYNN') ...

  2. List<T>集合的Sort自定义排序用法简单解析

    List<T>集合的Sort自定义排序用法简单解析: 如下:一系列无序数字,如果想要他们倒序排列,则使用如下代码: 那么如何理解这段代码呢? (x,y)表示相邻的两个对象,如果满足条件:x ...

  3. .NET/C#中对自定义对象集合进行自定义排序的方法

    一个集合可否排序,要看系统知不知道排序的规则,像内建的系统类型,int ,string,short,decimal这些,系统知道怎么排序,而如果一个集合里面放置的是自定义类型,比如自己定义了一个Car ...

  4. Easyui datagrid自定义排序

    做项目遇到个关于排序问题,想着在前端排序,正好Easyui有这个功能,所以就拿来用了一下,因为跟官网的Demo不太一样,所以总结一下: 首先这一列是要排序的列(当然,在生产环境,这一列是隐藏的,在开发 ...

  5. MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序

    MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序. 下面给出3中比较常用的排序方式,mark一下 1.常规排序ASC DESC ASC 正序 ...

  6. Python:Base4(map,reduce,filter,自定义排序函数(sorted),返回函数,闭包,匿名函数(lambda) )

    1.python把函数作为参数: 在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数: def add(x, y, f): return f(x) + f(y) 如果传入abs作为参数 ...

  7. Django项目:CRM(客户关系管理系统)--34--26PerfectCRM实现King_admin自定义排序

    ordering = ['-qq'] #自定义排序,默认'-id' #base_admin.py # ————————24PerfectCRM实现King_admin自定义操作数据———————— f ...

  8. Java集合框架实现自定义排序

    Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优 ...

  9. DataTable自定义排序

    使用JQ DataTable 的时候,希望某列数据可以进行自定义排序,操作如下:(以中文排序和百分比排序为例) 1:定义排序类型: //百分率排序 jQuery.fn.dataTableExt.oSo ...

  10. 干货之UICollectionViewFlowLayout自定义排序和拖拽手势

    使用UICollectionView,需要使用UICollectionViewLayout控制UICollectionViewCell布局,虽然UICollectionViewLayout提供了高度自 ...

随机推荐

  1. Ubuntu 安装google 拼音

    一.安装fcitx apt-get install fcitx 二.安装google pinyin sudo apt install fcitx-googlepinyin 三. 安装 fcitx-co ...

  2. Python初探list

    今天要说一个新概念--list,中文可以翻译成列表,是用来处理一组有序项目的数据结构.想象一下你的购物清单.待办工作.手机通讯录等等,它们都可以看作是一个列表.说它是新概念也不算确切,因为我们之前已经 ...

  3. python pip install mysql-python报错

    报错: 下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

  4. net core体系-web应用程序-4net core2.0大白话带你入门-9asp.net core服务的生命周期

    asp.net core服务的生命周期   Transient:每一次GetService都会创建一个新的实例 Scoped:在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request ...

  5. Python 面向对象4-继承

    #!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-08-05 # O ...

  6. jenkins(3): jenkins执行shell命令

    参考: https://www.cnblogs.com/reblue520/p/7146693.html 1. 执行 本地 shell命令或者脚本 是在一个构建中的  bulid 选项卡. 执行本地中 ...

  7. python---文件读写-IO

    IO----文件操作,读操作 1.open('文件名','打开方式',mode[buff]);------------->第一个参数是文件路径,第二个参数是打开方式(如果不写,默认是只读),第三 ...

  8. 2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round10-H.html 题目传送门 - https://www.n ...

  9. 实体转xml 并以string输出

    <?xml version="1.0" encoding="utf-8"?><Root> <Header> <Mess ...

  10. 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结

    2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...