java 二维报表排序
来源:互联网 发布:域名注册步骤 编辑:程序博客网 时间:2024/06/15 19:22
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import com.wind.po.ColSortObj;
import com.wind.sort.SortByCol;
public class DataGridTool {
public int[][] datagird = null;
public int row=0;
public int col=0;
public DataGridTool() {
}
public DataGridTool(int[][] datagird) {
this.datagird = datagird;
this.row = datagird.length;
this.col = datagird[0].length;
}
public int[][] sortByCol(int sortCol, boolean isDesc) {
int[][] resDataGrid = new int[row][col+1];
List<ColSortObj> colSortObjList = getColInfo(sortCol);
Collections.sort(colSortObjList, new SortByCol(isDesc));
int line = 0;
for(ColSortObj colSortObj : colSortObjList) {
for(int i=0;i<35;i++) {
System.out.print(datagird[colSortObj.getRow()][i]+":");
resDataGrid[line][i] = datagird[colSortObj.getRow()][i];
}
resDataGrid[line][col] = colSortObj.getRow();//行号
line++;
System.out.print("\n");
}
return resDataGrid;
}
private List<ColSortObj> getColInfo(int col) {
List<ColSortObj> colSortObjList = new ArrayList<ColSortObj>();
int row = this.row;
for(int i=0;i<row;i++) {
ColSortObj colSortObj = new ColSortObj();
colSortObj.setRow(i);
colSortObj.setVal(datagird[i][col]);
colSortObjList.add(colSortObj);
}
return colSortObjList;
}
public static void main(String[] args) {
// generateData();
// intialDataGrid(170,35);//test
// long starttime = System.currentTimeMillis();
//// for(int i=0;i<100000;i++) {
// int[][] resDataGrid = sortByCol(1, true);
//// }
// long endtime = System.currentTimeMillis();
// System.out.println("time:::"+(endtime-starttime));
}
}
import java.util.Comparator;
import com.wind.po.ColSortObj;
public class SortByCol implements Comparator {
private boolean isDesc;
public SortByCol() {
}
public SortByCol(boolean isDesc) {
this.isDesc = isDesc;
}
public int compare(Object o1, Object o2) {
ColSortObj colSortObj1 = (ColSortObj) o1;
ColSortObj colSortObj2 = (ColSortObj) o2;
try {
if(isDesc) {
if (colSortObj1.getVal() <= colSortObj2.getVal())
return 1;
return -1;
} else {
if (colSortObj1.getVal() <= colSortObj2.getVal())
return -1;
return 1;
}
} catch (Exception e) {
return 0;
}
}
}
public class ColSortObj implements java.io.Serializable {
private int row;
private int val;
public ColSortObj() {
}
public int getRow() {
return row;
}
public void setRow(int row) {
this.row = row;
}
public int getVal() {
return val;
}
public void setVal(int val) {
this.val = val;
}
}
- java 二维报表排序
- java二维数组排序
- java中二维数组排序
- Java二维数组冒泡排序
- java二维数组冒泡排序
- java-冒泡排序 选择排序 二维数组
- Java 4.1 java 排序和二维数组
- Java代码实现二维数组的排序
- Java基础---二维数组、冒泡排序法
- java(4)--排序算法及二维数组
- Java 实现二维数组按指定列经行排序
- Java 实现二维数组按指定列经行排序
- Java 二维数组根据维度升序或降序排序
- java 对二维数组排序的几种方法
- java学习(5)-二维数组以及排序算法
- Java实现二维数组排序(先行再列)
- java之数组的索引,排序以及二维数组
- Java学习第二周(2)--排序算法与二维数组
- CentOS下查看已经登录用户并踢出的方法
- Facebook Graph API 开发常见问题
- CGI、FastCGI、php-cgi、php-fpm
- maven学习(中)- 私服nexus搭建
- 序列图
- java 二维报表排序
- OpenGL ES 简单教程
- android关机充电流程、充电画面显示
- java设计模式之装饰模式
- 每日一得--使用动态代理实现自定义aop
- eclipse插件OpenExplorer
- 设计模式学习(三) -- 工厂模式 Factory Pattern
- ubuntu下python升级
- C# 下读写VF数据库