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. laravel 多对多关联 attach detach sync

    用户表和角色表,多对多关联,一个用户有多个角色,一个角色属于多个用户 添加多对多关联 attach: 给1号用户添加1号角色,并把关联表的column字段赋值为$value,后边的数组需要的时候再添加 ...

  2. cf1084d 非常巧妙的树形dp

    /* 给定n城市,m条道路,每条路耗油w,每个点有油a[i],从任意点出发,求最大可以剩下的油 dp[i]表示从i开始往下走的最大收益,ans表示最大结果 因为走过的路不能走,所以可以想到最优解肯定经 ...

  3. jenkins持续集成:构建多个job同时执行

    在jenkins 构建任务时,同时只能构建2个,但是有时候可能涉及到需要同时执行多个任务(大于2个),如果不能同时运行的话,就需要等待上一个执行完了,再执行第三个 比如用例非常多,需要把不同的用例分给 ...

  4. requests中get和post传参

    get请求 get(url, params=None, **kwargs) requests实现get请求传参的两种方式 方式一: import requests url = 'http://www. ...

  5. Python操作MySQL案例

    最近都在学习Python代码,希望学会Python后,能给我带来更高的工作效率,所以每天坚持学习和拷代码,下面是一个Python操作MySQL的一个实例,该实例可以让更多的人更好了解MySQLdb模块 ...

  6. Python模拟人猜数过程(折半查找)

    import random# (0,1000)随机产生一个数key = random.randint(1,1000)# 用来统计猜的次数count = 0 # 定义一个折半查找的函数def BinSe ...

  7. idea svn配置报错:Can't use Subversion command line client:svn

    1. 在Intellij IDEA里checkout东西时出先这个错误提示:Can't use Subversion command line client:svnSubversion command ...

  8. Nginx 提示host not found in upstream 错误解决方法

      Nginx DNS resolver配置实例,本文讲解在proxy_pass 和 upstream server 通信的时候需要手动指定 resolver,本文就给出了配置实例. nginx 通过 ...

  9. asp.net core ioc 依赖注入

    1.生命周期 内置的IOC有三种生命周期: Transient: Transient服务在每次被请求时都会被创建.这种生命周期比较适用于轻量级的无状态服务. Scoped: Scoped生命周期的服务 ...

  10. javascript OOP(下)(九)

    一.javascript模拟重载 java中根据参数类型和数量的区别来实现重载,javascript弱类型,没有直接的机制实现重载,javascript中参数类型不确定和参数个数任意,通过判断实际传入 ...