0 0

对table里面的数升序排序5

现在table里面有四组数,
排序的要求是先对里面的otdkKbkbn进行升序排序,如果有相同的则比较htStbi(升序),如果htStbi里出现相同则比较ysJunni(升序),同样的如果ysJunni里出现相同则比较srNo(升序),最后得到排序后的table

public 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]	2	1	2	3
//		hurryJchCountTbl[1]	1	2	3	2
//		hurryJchCountTbl[2]	1	1	2	3
//		hurryJchCountTbl[3]	1	1	2	2
//		hurryJchCountTbl[4]	2	2	4	1
//
//		hurryJchCountTbl sort 后
//		hurryJchCountTbl[0]	1	1	2	2
//		hurryJchCountTbl[1]	1	1	2	3
//		hurryJchCountTbl[2]	1	2	3	2
//		hurryJchCountTbl[3]	2	1	2	3
//		hurryJchCountTbl[4]	2	2	4	1

		//------------------------------------------
		
	}
	
	private static final class InnerDTO {
		//Default constructor
		private InnerDTO() {
			HurryJchCountTbl[] checkHurryJchCountTbl = getHurryJchCountTbl();
			for (int i = 0; i < checkHurryJchCountTbl.length; i++) {
				checkHurryJchCountTbl[i] = new HurryJchCountTbl(); 
			}
			
		}
		//hurryJchCountTbl
		private HurryJchCountTbl[] hurryJchCountTbl = new HurryJchCountTbl[5];
		
		//TBL
		public HurryJchCountTbl[] getHurryJchCountTbl() {
			return hurryJchCountTbl;
		}
		public void setHurryJchCountTbl(HurryJchCountTbl[] hurryJchCountTbl) {
			this.hurryJchCountTbl = hurryJchCountTbl;
		}
	}

	//tbl
	private 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;
	    }
		
	}
}

 

 

2013年10月28日 10:42

1个答案 按时间排序 按投票排序

0 0

采纳的答案

可以试试以下代码:
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;
        }

2013年10月28日 12:09

相关推荐

    vxe-table vue table 表格组件功能

    排序功能可以让用户快速对表格中的数据进行升序或降序排列,筛选功能则可以将表格内容进行过滤,以快速找到符合特定条件的数据。 此外,vxe-table还支持表尾合计功能,能够对指定列进行合计操作,输出小计或总计等...

    table列排序、列拖动、列宽度变化、行交换

    首先,**表头列排序**是一种常见于数据表格的功能,允许用户按照一列或多列的数据进行升序或降序排列。这通常通过点击表头来触发,后台根据排序条件对数据进行处理,然后重新渲染表格。排序功能对于数据量大且需要...

    React-Table

    - 数据排序:利用useSortBy hook,可以对表格数据进行升序或降序排列。 2. UI渲染: - 自定义化:React-Table 提供了高度的自定义能力,开发者可以通过使用Cell、Header等render函数来自定义表格单元格和表头的...

    javascript 数组排序函数sort和reverse使用介绍

    而对于数字,如果需要按数字大小进行排序,需要传入一个比较函数,如升序排序: ```javascript var numbers = [6, 8, 9, 5.6, 12, 17, 90]; numbers.sort(function(a, b) { return a - b; }); alert(numbers); /...

    SQL 资料 SQL中常用的数据类型 SQL中创建数据库的语法,创建表的语法

    - 这条语句用于从表`table1`中选择所有记录,并按照`field1`升序、`field2`降序进行排序。 - **聚合函数**: ```sql SELECT COUNT(*) AS total_count FROM table1; SELECT SUM(field1) AS sum_value FROM table...

    jquery表格排序和筛选表.rar

    对于压缩包中的"jquery表格排序和筛选表",可能包含了一个示例项目,里面可能有HTML、CSS和JavaScript文件。HTML文件定义了表格结构,CSS文件用于样式设计,而JavaScript文件则是实现排序和筛选的核心。通过查看和...

    javascript实现对表格元素进行排序操作

    排序的函数代码:里面含有点击之后排序–还原,和排升序和降序。 function sortAge(){ //对年龄进行排序,要先进行获得每一行对象,然后对象对象中的第一个(从0 开始)的大小进行排序 var tabNode = document....

    2009达内SQL学习笔记

    Order by:按某排序列表(默认升序 asc,由低到高;可加 desc,改成降序由高到低) 检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。 ORDER BY 子句取一个或多个...

    MySQL命令大全

    -d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table 4.导入数据库 A:常用source 命令 进入mysql数据库控制台, 如mysql -u root -p mysql&gt;use 数据库 然后使用source命令,后面参数为脚本...

    SQL语法大全

    COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数,其中,M表示精度,代表数字的总位数;N表示小数点右边数字的位数 日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月...

    mysql 查询表中平均分最低的班级

    然后,我们使用`ORDER BY`语句对这些平均分进行升序排序。默认情况下,`ORDER BY`会按照升序排列,这意味着最小的平均分会出现在结果集的顶部。如果我们要找到平均分最高的班级,我们可以改为降序排序,即`ORDER BY ...

    同学的打包代码

    包括创建数据库,实现对数据库里面的表的添加,删除;以及能够完成对表结构的修改(如添加或删除字段),以及对表中的记录进行添加和删除;能够完成对使用适当的查询语言从一个或多个表中查找相关信息。 4、 矩阵...

    合并省市区县

    这可以通过Excel的排序功能实现,根据列中的值进行升序或降序排列。对于地理数据,排序通常是按照地理位置的逻辑顺序,即先省后市,再区县。 接着,"将区县的数据放至城市,再把城市的数据放到省里"的操作,意味着...

    Excel模板家电销售年度对比表.zip

    4. **数据排序与筛选**:用户可以按特定列对数据进行升序或降序排序,也可以设置条件筛选,便于查找和分析特定信息。 5. **数据透视表(PivotTable)**:对于大量数据,可以创建数据透视表进行汇总分析,快速揭示...

    oracle考试题目.docx

    15. **现在e盘下有一个test.sql文件(里面有很多对数据库的操作),请问怎样在控制台运行这个sql文件?** - 在SQL*Plus中执行脚本文件的方法:`@E:\test.sql` 16. **Oracle中的权限有哪两种?** - Oracle中的权限...

    SqlServer2000

    11. **`ORDER BY`子句**:`ORDER BY`用于排序结果,可以指定多个列和排序方向(默认升序`ASC`,降序`DESC`): ```sql select * from readCategory where 种类名称 is null order by 种类编号 desc, 借书期限 asc;...

Global site tag (gtag.js) - Google Analytics