/*** 获取列表总页数*/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>() {@Overridepublic 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;}});}

转载于:https://www.cnblogs.com/kesimin/p/9547669.html

ListUtil常用操作相关推荐

  1. TensorFlow常用操作:代码示例

    1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...

  2. Ubuntu 常用操作

    Ubuntu常用操作 外观操作 修改应用icon图标 终端美化 内存管理 内存查询 分区管理 日志清理 操作执行 自动执行多条命令 外观操作 修改应用icon图标 在/usr/share/applic ...

  3. IOS沙盒Files目录说明和常用操作

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  4. 用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  5. python和R对dataframe的常用操作的差异:head、tail、shape、dim、nrow、ncol、descirbe、summary、str

    python和R对dataframe的常用操作的差异:head.tail.shape.dim.nrow.ncol.descirbe.summary.str # python df.head() # R ...

  6. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  7. JavaScript:对Object对象的一些常用操作总结

    JavaScript对Object对象的一些常用操作总结. 一.Object.assign() 1.可以用作对象的复制 var obj = { a: 1 }; var copy = Object.as ...

  8. ubuntu的学习教程(常用操作)

    摘要 最近在学习linux,把自己学习过程中遇到的常用操作以及一些有助于理解的内容记录下来.我主要用的是ubuntu系统 命令提示符 '~' 这个是指用户的家目录,用户分为root用户和普通用户,ro ...

  9. 20180929 VIM进入编辑模式、VIM命令模式常用操作

    2019独角兽企业重金招聘Python工程师标准>>> vim进入编辑模式方式 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 a 在当前字符后插入 A 在光标所在行的 ...

最新文章

  1. 荣耀总裁赵明:AI 是核心战略,全球前五的目标不会变
  2. volatile对原子性、可见性、有序性的保证
  3. jvm:运行时数据区--操作数栈
  4. Java实现算法导论中反复平方法模取幂
  5. FreeRTOS系列第1篇---为什么选择FreeRTOS?
  6. 分布式事务:两段式提交(最终一致性)
  7. python工程技巧_python 19个值得学习的编程技巧
  8. PDH光端机常见故障及解决方法介绍
  9. Anaconda 安装
  10. linux shell if
  11. 11纯代码 oc xcode_iOS代码染色原理及技术实践
  12. Codeforces #662C Binary Table
  13. 使用猴子测试工具(1)
  14. 使用Requests爬取网页图片并保存
  15. Python爬取满7天赎回零费率基金:短线基金定投
  16. 使用python计算与你投缘与无缘的生肖
  17. 团队合作开发的两种文档工具
  18. VS2022 支持XP
  19. Aspose.Slides使用教程:使用 C# 在 PowerPoint 演示文稿中添加页眉和页脚
  20. wince 串口 编程

热门文章

  1. Java 创建线程的4种方式
  2. L1-070 吃火锅 (15 分)-PAT 团体程序设计天梯赛 GPLT
  3. java编程线板切割问题_坑爹的日志无法按天切割问题!
  4. odbc 动态创建 mysql_如何动态创建ODBC数据源
  5. Linux系统不同主机之间的时间同步
  6. Java的HttpClient类以POST方式提交数据,目标端收到后中文乱码
  7. 开发环境搭建3:linux下tuxedo安装
  8. 面试系列-Java面试总则
  9. 基于名字自动化之原理(1)
  10. MATLAB批量读取图片,剪切,存储,放大