List自定义排序(可多条件)
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自定义排序(可多条件)的更多相关文章
- mysql查询区分大小写与自定义排序
mysql查询区分大小写: SELECT id,developer FROM products WHERE developer != '' and developer = binary('LYNN') ...
- List<T>集合的Sort自定义排序用法简单解析
List<T>集合的Sort自定义排序用法简单解析: 如下:一系列无序数字,如果想要他们倒序排列,则使用如下代码: 那么如何理解这段代码呢? (x,y)表示相邻的两个对象,如果满足条件:x ...
- .NET/C#中对自定义对象集合进行自定义排序的方法
一个集合可否排序,要看系统知不知道排序的规则,像内建的系统类型,int ,string,short,decimal这些,系统知道怎么排序,而如果一个集合里面放置的是自定义类型,比如自己定义了一个Car ...
- Easyui datagrid自定义排序
做项目遇到个关于排序问题,想着在前端排序,正好Easyui有这个功能,所以就拿来用了一下,因为跟官网的Demo不太一样,所以总结一下: 首先这一列是要排序的列(当然,在生产环境,这一列是隐藏的,在开发 ...
- MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序
MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序. 下面给出3中比较常用的排序方式,mark一下 1.常规排序ASC DESC ASC 正序 ...
- Python:Base4(map,reduce,filter,自定义排序函数(sorted),返回函数,闭包,匿名函数(lambda) )
1.python把函数作为参数: 在2.1小节中,我们讲了高阶函数的概念,并编写了一个简单的高阶函数: def add(x, y, f): return f(x) + f(y) 如果传入abs作为参数 ...
- Django项目:CRM(客户关系管理系统)--34--26PerfectCRM实现King_admin自定义排序
ordering = ['-qq'] #自定义排序,默认'-id' #base_admin.py # ————————24PerfectCRM实现King_admin自定义操作数据———————— f ...
- Java集合框架实现自定义排序
Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优 ...
- DataTable自定义排序
使用JQ DataTable 的时候,希望某列数据可以进行自定义排序,操作如下:(以中文排序和百分比排序为例) 1:定义排序类型: //百分率排序 jQuery.fn.dataTableExt.oSo ...
- 干货之UICollectionViewFlowLayout自定义排序和拖拽手势
使用UICollectionView,需要使用UICollectionViewLayout控制UICollectionViewCell布局,虽然UICollectionViewLayout提供了高度自 ...
随机推荐
- Vue-CLI 3.x 设置反向代理
最近在项目中使用了Vue CLI 3.0版本,项目中需要设置反向代理解决跨域问题,下面记录一下设置过程. 新建配置文件 (vue-cli3.x 官网的配置文档 https://cli.vuejs.or ...
- Java 创建一个窗口,使其启动时位于屏幕中间
import java.awt.Toolkit; import javax.swing.JFrame; public class WindowInTheMiddle extends JFrame { ...
- Cannot uninstall 'html5lib'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
如标题,安装Tensorflow-gpu时遇到的完整问题 Cannot uninstall 'html5lib'. It is a distutils installed project and th ...
- VUE失去焦点提交修改值
xxx.vue <input class="ml6 w85 bdr-6 bd-none text-center" type="text" v-model= ...
- 解决notepad++64位没有plugin manager的问题
安装了最新的notepad++版本发现没有插件管理器,很难受. 后来上官网发现了这样一句话 Note that the most of plugins (including Plugin Manage ...
- 使用Vmware CLI 6.5控制虚拟机,并做快照
1.下载PowerCLI 6.5 http://7dx.pc6.com/wwb5/VMwarePowerCLI65.zip 2. 打开 VMware vSphere PowerCLI 出现 无法加载文 ...
- C#矩阵求逆
来源:http://zhidao.baidu.com/link?url=DiqAbq9YUYn3z7QjxGGoF0PLZwN-Y9ecqKB7Gy38JWRD1riMIYukVKXKq88pxtWL ...
- dubbo的工作原理
dubbo工作原理 第一层:service层,接口层,给服务提供者和消费者来实现的 第二层:config层,配置层,主要是对dubbo进行各种配置的 第三层:proxy层,服务代理层,透明生成客户端的 ...
- Http系列笔记
万能的HttpClient (Framework与NetCore 都支持) string url = "http://localhost:5000/api/values"; //p ...
- Ansible playbook 部署Openresty
- hosts: all tasks: - name: copy package copy: src=/usr/local/openresty-1.13.6.1.tar.gz dest=/usr/lo ...