`
- 浏览:
118217 次
- 性别:
- 来自:
杭州
-
代码如下:

package com.hs.jp.lys;

import java.util.Arrays;
import java.util.Comparator;


/** *//**
* GroupBy
* @author linys
* @extends ArraysComparator
* @E-mail tolys@126.com
* @version 1.0
*/

public class GroupBy extends ArraysComparator...{

public GroupBy(Object[][] array )...{
Arrays.sort(array, new ArraysComparator());
}

public GroupBy(Object[][] array ,int keyColumn,int sortOrder )...{
Arrays.sort(array, new ArraysComparator(keyColumn,sortOrder));
}

public GroupBy(Object[][] array ,int keyColumn)...{
Arrays.sort(array, new ArraysComparator(keyColumn));
}
}


class ArraysComparator implements Comparator ...{
//设置缺省列
private int column = 0;
//设置缺省排序方式 (1:升序 -1:降序)
private int orderFlag = 1;

public ArraysComparator() ...{
}

public ArraysComparator(int column) ...{
this.column = column;
}

public ArraysComparator(int column, int orderFlag) ...{
this.column = column;
this.orderFlag = orderFlag;
}

public int compare(Object objOne, Object objTwo) ...{

if (objOne instanceof String[]) ...{
return orderFlag * ((String[]) objOne)[column].compareTo(((String[]) objTwo)[column]);


} else if (objOne instanceof int[]) ...{
return orderFlag * (((int[]) objOne)[column] - ((int[]) objTwo)[column]);

} else ...{
return 0;
}
}
}
Test Case:
package com.hs.jp.lys;


/** *//**
* TestGroupBy
* @author linys
*
*/

public class TestGroupBy ...{


/** *//**
* @param args
*/

public static void main(String[] args) ...{


String[][] arr = ...{

...{ "1", "A", "N" },


...{ "2", "O", "B" },


...{ "3", "P", "A" }
};

// 缺省(按0列升序)
new GroupBy(arr);
printResult(arr);
// 按0列降序
new GroupBy(arr,0,-1);
printResult(arr);

}


public static void printResult(Object[][] arr) ...{

for (int i = 0; i < arr.length; i++) ...{

for (int j = 0; j < arr[i].length; j++) ...{
System.out.print(arr[i][j] + " ");
}
System.out.println(" ");
}
System.out.println("======BY tolys====== ");
}
}


分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
总结来说,本文介绍的C#实现二维数组排序的方法,通过将二维数组转换为`DataTable`并利用其内置的排序功能,提供了一种灵活且高效的解决方案。这种方法不仅适用于各种数据类型,而且保持了原始数组的引用,使得排序...
### 二维数组冒泡排序详解 #### 一、引言 冒泡排序是一种简单的排序算法,在数据处理领域有着广泛的应用。对于一维数组而言,冒泡排序实现起来...希望本文能够帮助初学者更好地理解二维数组排序的原理和实现细节。
总结来说,LabVIEW中的二维数组排序涉及理解二维数组的结构,掌握各种排序方法,包括按行、按列及自定义排序,以及处理数据类型转换和性能优化。熟练掌握这些技能将使你在LabVIEW编程中游刃有余,处理各种数据处理...
// 二维数组冒泡排序 public static void main(String[] args) { int i=0, j=0, temp = 0; int[][] nums1 = { { 34, 1, 22, 5 }, { 28, 98, 15, 32 }, { 33, -5, 17, 41 } }; int rows = nums1.length; //二维...
VB.NET二维数组快速排序(更新) 'OldArrays(),为排序二维数组;NewArrays(),为存放结果数组,SortColumnsOrOrders(),传递排序参数数组,偶数个为排序列号,奇数为升降序,0为升序,1为降序;FieldRow,是否有字段行...
不要看分数高,这个程序绝对可以对得起大家的分数。这个楼主的研究哈!反正下了评价后分数可以返还的................
二维数组的排序,其中包含冒泡排序、选择排序、插入排序和快速选择排序。
如果需要根据其他列进行排序,或者实现完全的二维数组排序(比如按照行和列的组合排序),则需要更复杂的逻辑。例如,你可以先按照第一列排序,然后再对每一行的子序列按照第二列排序,以此类推。这将涉及到嵌套排序...
VB二维数组排序源码
用labview在While循环中实现二维数组的逐行排序,用两个for循环
在实际应用,我们经常要用对二维数组中的某一行或者某一列进行排序,然后其他位置要跟排序一起变动
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
本文将深入探讨如何在PHP中对二维数组按数组值进行排序,并提供一个实际的代码示例。 二维数组,顾名思义,是数组中的数组,可以理解为表格形式的数据结构,每一行是一个一维数组,所有行数组组成一个二维数组。...
二维数组排序.vi
在给定的描述中,提到了根据二维数组的第一列数值进行排序的需求。这通常涉及到两种排序方式:降序和升序。降序排序意味着将第一列的数值从大到小排列,而升序排序则是从小到大排列。在编程中,实现这种排序可以通过...
二维数组排序.zip源码Labview个人项目资料程序资源下载二维数组排序.zip源码Labview个人项目资料程序资源下载二维数组排序.zip源码Labview个人项目资料程序资源下载二维数组排序.zip源码Labview个人项目资料程序资源...
解决二维数组的排序问题 二维数组排序按照某个字段正序或倒序排列 函数