java对实体类列表进行方法内排序,不修改数据查询方式
2017-08-16 15:50
671 查看
void sortList(List<DoublePubAddEntity> doublePubSummaryEntities, String sortname, String sortorder){ if(!StringUtils.isEmpty(sortname) && !StringUtils.isEmpty(sortorder) && doublePubSummaryEntities!=null){ for(int i=0;i<doublePubSummaryEntities.size();i++){ for(int j=i+1;j<doublePubSummaryEntities.size();j++){ DoublePubAddEntity tempi = doublePubSummaryEntities.get(i); DoublePubAddEntity tempj = doublePubSummaryEntities.get(j); try { Field faFieldi = tempi.getClass().getDeclaredField(sortname); Field faFieldj = tempj.getClass().getDeclaredField(sortname); if(faFieldi!=null && faFieldj!=null) { faFieldi.setAccessible(true); //设置些属性是可以访问的 faFieldj.setAccessible(true); Object vali = faFieldi.get(tempi);//得到此属性的值 Object valj = faFieldj.get(tempj);//得到此属性的值 if (vali != null && valj != null) { int vi = 0; int vj = 0; if ("--".equals(vali) ) { vi = 0; }else{ String typei = faFieldi.getType().toString();//得到此属性的类型 if (typei.endsWith("String") ) { vi = Integer.valueOf(vali.toString()); } } if( "--".equals(valj)){ vj = 0; }else{ String typej = faFieldj.getType().toString();//得到此属性的类型 if (typej.endsWith("String") ) { vj = Integer.valueOf(valj.toString()); } } if (sortorder.toLowerCase().equals("asc")) { if (vi > vj) { doublePubSummaryEntities.set(i, tempj); doublePubSummaryEntities.set(j, tempi); } } else if (sortorder.toLowerCase().equals("desc")) { if (vi < vj) { doublePubSummaryEntities.set(i, tempj); doublePubSummaryEntities.set(j, tempi); } } } } } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } } }
相关文章推荐
- Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法
- Django中对数据查询结果进行排序的方法
- JAVA+JDBC对数据库的数据进行增加、修改、删除、查询等操作
- Linq排序、分组、模糊查询、调用外部方法、直接执行SQL语句、事务、修改数据
- Java对MySQL数据库进行连接、查询和修改操作方法
- laravel查询得到的数据(为对象object)无法进行数组循环遍历,而且不能用数组方式访问和查看的原因以及解决方法
- Django中对数据查询结果进行排序的方法
- java对List<Object>型列表进行排序(通过内部类对compare(**)方法重写)
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
- Oracle数据提到文本文档进行查询的方法
- arcgis server进行查询任务时默认返回最大为500条记录的修改方法
- JAVA在命令行界面中进行输入数据的方法
- spring 回调jdbc 进行大批量数据 查询,修改,添加
- 最简单的对Java List列表按中文拼音排序的实现方式
- 在S2SH整合中如何对其多表联合查询出来的数据,进行分页和排序
- 复选框、布尔型数据在列表、添加、修改、查询中的显示
- php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法
- dedecms 搜索结果将按点击排序方式的修改方法
- XML 方法对SQL列表中的值进行重新排序
- 用jQuery中的Ajax方法,进行无刷新修改类别(可以是任何数据)的办法