对table里面的数升序排序

问题描述

现在table里面有四组数,排序的要求是先对里面的otdkKbkbn进行升序排序,如果有相同的则比较htStbi(升序),如果htStbi里出现相同则比较ysJunni(升序),同样的如果ysJunni里出现相同则比较srNo(升序),最后得到排序后的tablepublic class test {public static void main(String args[]) {InnerDTO workDTO = new InnerDTO();workDTO.getHurryJchCountTbl()[0].setOtdkKbkbn("2");workDTO.getHurryJchCountTbl()[1].setOtdkKbkbn("1");workDTO.getHurryJchCountTbl()[2].setOtdkKbkbn("1");workDTO.getHurryJchCountTbl()[3].setOtdkKbkbn("1");workDTO.getHurryJchCountTbl()[4].setOtdkKbkbn("2");workDTO.getHurryJchCountTbl()[0].setYsJunni("1");workDTO.getHurryJchCountTbl()[1].setYsJunni("2");workDTO.getHurryJchCountTbl()[2].setYsJunni("1");workDTO.getHurryJchCountTbl()[3].setYsJunni("1");workDTO.getHurryJchCountTbl()[4].setYsJunni("2");workDTO.getHurryJchCountTbl()[0].setHtStbi("2");workDTO.getHurryJchCountTbl()[1].setHtStbi("3");workDTO.getHurryJchCountTbl()[2].setHtStbi("2");workDTO.getHurryJchCountTbl()[3].setHtStbi("2");workDTO.getHurryJchCountTbl()[4].setHtStbi("4");workDTO.getHurryJchCountTbl()[0].setSrNo("3");workDTO.getHurryJchCountTbl()[1].setSrNo("2");workDTO.getHurryJchCountTbl()[2].setSrNo("3");workDTO.getHurryJchCountTbl()[3].setSrNo("2");workDTO.getHurryJchCountTbl()[4].setSrNo("1");//-------------------------------------------//sort的处理方法//hurryJchCountTbl sort 前//OtdkKbkbn YsJunni HtStbi SrNo//hurryJchCountTbl[0]2123//hurryJchCountTbl[1]1232//hurryJchCountTbl[2]1123//hurryJchCountTbl[3]1122//hurryJchCountTbl[4]2241////hurryJchCountTbl sort 后//hurryJchCountTbl[0]1122//hurryJchCountTbl[1]1123//hurryJchCountTbl[2]1232//hurryJchCountTbl[3]2123//hurryJchCountTbl[4]2241//------------------------------------------}private static final class InnerDTO {//Default constructorprivate InnerDTO() {HurryJchCountTbl[] checkHurryJchCountTbl = getHurryJchCountTbl();for (int i = 0; i < checkHurryJchCountTbl.length; i++) {checkHurryJchCountTbl[i] = new HurryJchCountTbl(); }}//hurryJchCountTblprivate HurryJchCountTbl[] hurryJchCountTbl = new HurryJchCountTbl[5];//TBLpublic HurryJchCountTbl[] getHurryJchCountTbl() {return hurryJchCountTbl;}public void setHurryJchCountTbl(HurryJchCountTbl[] hurryJchCountTbl) {this.hurryJchCountTbl = hurryJchCountTbl;}}//tblprivate static final class HurryJchCountTbl {private String srNo;private String ysJunni; private String otdkKbkbn; private String htStbi; public String getSrNo() {return srNo;}public void setSrNo(String srNo) {this.srNo = srNo;}public String getYsJunni() {return ysJunni;}public void setYsJunni(String ysJunni) {this.ysJunni = ysJunni;} public String getOtdkKbkbn() { return this.otdkKbkbn; } public void setOtdkKbkbn(String otdkKbkbn) { this.otdkKbkbn = otdkKbkbn; } public String getHtStbi() { return this.htStbi; } public void setHtStbi(String htStbi) { this.htStbi = htStbi; }}}

解决方案

可以试试以下代码:for(int i =0 ; i<workDTO.getHurryJchCountTbl().length ;i++){ HurryJchCountTbl min = workDTO.getHurryJchCountTbl()[i]; int minN = i; for(int j = i+1;j<workDTO.getHurryJchCountTbl().length;j++){ HurryJchCountTbl ls = workDTO.getHurryJchCountTbl()[j]; int k = min.otdkKbkbn.compareTo(ls.otdkKbkbn); if(k>0){ minN = j; }else if(k==0){ int htStbi = min.htStbi.compareTo(ls.htStbi); if(htStbi>0){ minN = j; }else if(htStbi == 0){ int ysJunni = min.ysJunni.compareTo(ls.ysJunni); if(ysJunni>0){ minN = j; }else if(ysJunni == 0){ int srNo = min.srNo.compareTo(ls.srNo); if(srNo>0){ minN = j; } } } } } HurryJchCountTbl c = workDTO.getHurryJchCountTbl()[i]; workDTO.getHurryJchCountTbl()[i] = workDTO.getHurryJchCountTbl()[minN]; workDTO.getHurryJchCountTbl()[minN] = c; }

时间: 2024-09-14 17:24:25

对table里面的数升序排序的相关文章

java类的问题-java题,将该字符串每个字符与&amp;amp;#39;U&amp;amp;#39;之差的绝对值的升序排序

问题描述 java题,将该字符串每个字符与'U'之差的绝对值的升序排序 输入一组字符串,将该字符串每个字符与'U'之差的绝对值的升序排序.在线等!!? 解决方案 每个字符都减去同一个字符跟不减不一样么?没有必要啊.直接排序即可. 解决方案二: 首先,按照我的一贯观点,这种问题和编程语言无关,和编程语言无关,和编程语言无关.重要的事情说三遍! 设计重点:1.与U的差值存储;2.升序排序. 已知的排序算法相当多,不过在本问题情形下,需要稍作变通. 给出一个简单方案吧:给定字符串Char[];比较差值

order-mysql查询语句求助 限定输出数和排序方式

问题描述 mysql查询语句求助 限定输出数和排序方式 从表a中倒叙输出id从20-11的记录这句话怎么写 select * from a where id limit 10,20 order by id desc 这样不对 order和limit无法同时使用...到底要怎么写啊 求大神指点 解决方案 select t.* from (select * from a where id limit 10,20) t order by t.id desc ; 解决方案二: select * from

map实现按value升序排序_java

复制代码 代码如下:  /**     * @param h     * @return     * 实现对map按照value升序排序     */    @SuppressWarnings("unchecked")    public static Map.Entry[] getSortedHashtableByValue(Map h) {        Set set = h.entrySet();        Map.Entry[] entries = (Map.Entry[

php数组排序之ksort-对数组的元素键名进行升序排序

这次这个函数是 ksort() 函数按照键名对数组升序排序,为数组值保留原来的键. 可选的第二个参数包含附加的排序标志. 若成功,则返回 TRUE,否则返回 FALSE. 语法 ksort(array,sorttype)参数 描述 array 必需.规定要排序的数组. sorttype 可选.规定如何排列数组的值.可能的值: SORT_REGULAR - 默认.以它们原来的类型进行处理(不改变类型). SORT_NUMERIC - 把值作为数字来处理 SORT_STRING - 把值作为字符串来

java数组降序和升序排序例子

java.util.Arrays 类中提供了几个静态方法用来对数组进行排序.例如:使用Arrays.sort(),然后将数组作为参数传入,然后返回排序完的数组.java中,我们也可以使用升序或降序,或者是自定义comparator来进行排序. 对java数组进行升序排序 对数组(String,int等类型)进行升序排序,我们可以直接使用Arrays.sort()方法,该方法会默认根据CompareTo方法实现的自然顺序(natral order)进行升序排序.所谓自然顺序,如对于String类型

php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系_php技巧

ksort()定义和用法 ksort() 函数按照键名对数组升序排序,为数组值保留原来的键. 可选的第二个参数包含附加的排序标志. 若成功,则返回 TRUE,否则返回 FALSE. 语法 ksort(array,sorttype)参数 描述 array 必需.规定要排序的数组. sorttype 可选.规定如何排列数组的值.可能的值: SORT_REGULAR - 默认.以它们原来的类型进行处理(不改变类型). SORT_NUMERIC - 把值作为数字来处理 SORT_STRING - 把值作

table中点击表头实现排序的功能示例介绍

 获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列 <a href="javascript:setOrder();">表头名字</a>,页面中获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列,    获取排列顺序的列名及排列顺序以后,传到后台获取相应sql,添加order by 语句,完成排序功能    排序顺序值可在form中存放在隐藏域中,思路

table中点击表头实现排序的功能示例介绍_JSP编程

<a href="javascript:setOrder();">表头名字</a>,页面中获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列, 获取排列顺序的列名及排列顺序以后,传到后台获取相应sql,添加order by 语句,完成排序功能 排序顺序值可在form中存放在隐藏域中,思路就是这样. 例如在使用Birt报表工具创建报表需要点击表头的名称排序的功能时,可以再表头名称处增加一个超链接,链接内容为T

php数组函数序列之sort() 对数组的元素值进行升序排序_php技巧

sort()定义和用法 sort() 函数按升序对给定数组的值排序. 注释:本函数为数组中的单元赋予新的键名.原有的键名将被删除. 如果成功则返回 TRUE,否则返回 FALSE. 语法 sort(array,sorttype)参数 描述 array 必需.输入的数组. sorttype 可选.规定如何排列数组的值.可能的值: SORT_REGULAR - 默认.以它们原来的类型进行处理(不改变类型). SORT_NUMERIC - 把值作为数字来处理 SORT_STRING - 把值作为字符串