ListUtil常用操作
- /**
- * 获取列表总页数
- */
- public static <T> int getListPages(List<T> list,int pageNum,int pageSize ){
- if (isNull(list)){
- return 0;
- }
- BaseQuery baseQuery=new BaseQuery();
- baseQuery.setPageNum(pageNum);
- baseQuery.setPageSize(pageSize);
- //list的大小
- int total = list.size();
- baseQuery.setTotal(total);
- return baseQuery.getPages();
- }
- /**
- * 对列表进行分页,索引左边包括,右边不包括
- */
- public static <T> List<T> subListByPage(List<T> list,int pageNum,int pageSize ){
- if (isNull(list)){
- return Collections.emptyList();
- }
- BaseQuery baseQuery=new BaseQuery();
- baseQuery.setPageNum(pageNum);
- baseQuery.setPageSize(pageSize);
- //list的大小
- int total = list.size();
- //对list进行截取
- return list.subList(baseQuery.getStartPosition(),total-baseQuery.getStartPosition()>baseQuery.getPageSize()?baseQuery.getStartPosition()+baseQuery.getPageSize():total);
- }
- /**
- * 对列表进行索引截取,索引左边包括,右边不包括
- */
- public static <T> List<T> subListByPosition(List<T> list,BaseQuery baseQuery){
- if (isNull(list)){
- baseQuery.setTotal(0);
- return Collections.emptyList();
- }
- //设置列表总条数
- int total = list.size();
- baseQuery.setTotal(total);
- if ((baseQuery.getStartIndex()-1)>=total){
- return Collections.emptyList();
- }
- //对list进行截取
- return list.subList(baseQuery.getStartIndex()-1,baseQuery.getEndIndex()>total?total:baseQuery.getEndIndex());
- }
- /**
- *对列表字段进行比较排序
- */
- public static <T> void sortByField(List<T> dtoList,String fieldName,String order) {
- int compare=1;
- if ("desc".equals(order)){
- compare=-1;
- }
- int finalCompare = compare;
- Collections.sort(dtoList, new Comparator<T>() {
- @Override
- public int compare(T o1, T o2) {
- PropertyDescriptor pd1 = null;
- PropertyDescriptor pd2 = null;
- Object value1 =null;
- Object value2 =null;
- try {
- pd1 = new PropertyDescriptor(fieldName, o1.getClass());
- value1 = pd1.getReadMethod().invoke(o1, null);
- pd2 = new PropertyDescriptor(fieldName, o2.getClass());
- value2 = pd2.getReadMethod().invoke(o2, null);
- } catch (IntrospectionException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- }
- if (value1.getClass().equals(Double.class)){
- System.out.println(2);
- if ((Double)value1 > (Double)value2) {
- return finalCompare;
- } else if ((Double)value1 < (Double)value2) {
- return -finalCompare;
- }
- }else if (value1.getClass().equals(Integer.class)){
- System.out.println(4);
- if ((Integer)value1 > (Integer)value2) {
- return finalCompare;
- } else if ((Integer)value1 < (Integer)value2) {
- return -finalCompare;
- }
- }
- return 0;
- }
- });
- }
ListUtil常用操作的更多相关文章
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- python 异常处理、文件常用操作
异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm
- byte数据的常用操作函数[转发]
/// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
随机推荐
- BZOJ 3119 Book (贪心+数学推导)
手动博客搬家: 本文发表于20191029 22:49:41, 原地址https://blog.csdn.net/suncongbo/article/details/78388925 URL: htt ...
- Java基础学习总结(66)——配置管理库typesafe.config教程
Typesafe的Config库,纯Java写成.零外部依赖.代码精简.功能灵活.API友好.支持Java properties.JSON.JSON超集格式HOCON以及环境变量.它也是Akka的配置 ...
- HDU 4515
刷水完毕,年月日,日日日日日日日日日日日日日日日日日日 #include <stdio.h> ,,,,,,,,,,,,}; ,M = ,D = ; int leap(int y) { == ...
- Tarjan算法各种&RMQ& POJ 3694
关于tarjan 的思想可以在网上搜到,具体我也不太清楚,应该说自己理解也不深,下面是做题经验得到的一些模板. 其中有很多转载,包括BYVoid等,感谢让我转...望各路大神愿谅 有向图求连通分量的一 ...
- Delicious Apples (hdu 5303 贪心+枚举)
Delicious Apples Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Other ...
- C++开发人脸性别识别教程(12)——加入性别识别功能
经过之前几篇博客的解说,我们已经成功搭建了MFC应用框架,并实现了主要的图像显示和人脸检測程序,在这篇博文中我们要向当中加入性别识别代码. 关于性别识别,之前已经专门拿出两篇博客的篇幅来进行解说.这里 ...
- hibernate之7.one2many双向
表结构 实体类关系 实体类源代码 Student package com.demo.model; import java.io.UnsupportedEncodingException; import ...
- Webx框架:Spring Schema 和 Spring Ext
webx诞生的原因是当时市面上没有好用的web框架.如今的Web框架有非常多.然后它们背后的思想都是相似的,并且越来越趋同. Spring Schema 在传统的spring中,配置bean时须要手动 ...
- 【iOS开发-80】Quartz2D画图简单介绍:直线/圆形/椭圆/方形以及上下文栈管理CGContextSaveGState/CGContextRestoreGState
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2Vpc3ViYW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- luogu1315 观光公交
题目大意 一个公交车在一条线上从1站.2站走到n站,站站间有距离.另有m个乘客在时间点t在a站等候要到b站.对于一个站,如果车比人早到,则车等人,如果人比车早到,则人等车(我一开始做题时把这个情况当作 ...