# private int array[][] = new int[][] {
# { 12, 34, 68, 32, 9, 12, 545 },
# { 34, 72, 82, 57, 56, 0, 213 },
# { 12, 34, 68, 32, 21, 945, 23 },
# { 91, 10, 3, 2354, 73, 34, 18 },
# { 12, 83, 189, 26, 27, 98, 33 },
# { 47, 23, 889, 24, 899, 23, 657 },
# { 12, 34, 68, 343, 878, 235, 768 },
# { 12, 34, 98, 4, 56, 78, 12},
# { 26, 78, 2365, 78, 34, 256, 873 } };// 要排序的数组
实现对一个二维数组按指定的列集进行排序。要求实现类似sql中order by的功能,移动时,整行移动,不能打乱整行顺序。可将二维数组想象成数据库里的一个表记录集,
然后按指定的列集进行排序,即order by col1,col2。
这是在论坛中看到的一道笔试题,自己写了个又臭又长的code.看得自己都觉得不好意思了,深知自己java基础还很弱。
下面是一个网友的code.很简洁、明了。贴在下面了。
package test;
import java.util.Arrays;
import java.util.Comparator;
public class ArraySort {
public static void sort(int[][] ob, final int[] order) {
Arrays.sort(ob, new Comparator<Object>() {
public int compare(Object o1, Object o2) {
int[] one = (int[]) o1;
int[] two = (int[]) o2;
for (int i = 0; i < order.length; i++) {
int k = order[i];
if (one[k] > two[k]) {
return 1;
} else if (one[k] < two[k]) {
return -1;
} else {
continue; //如果按一条件比较结果相等,就使用第二个条件进行比较。
}
}
return 0;
}
});
}
public static void main(String[] args) {
int array[][] = new int[][] {
{ 12, 34, 68, 32, 9, 12, 545 },
{ 34, 72, 82, 57, 56, 0, 213 },
{ 12, 34, 68, 32, 21, 945, 23 },
{ 91, 10, 3, 2354, 73, 34, 18 },
{ 12, 83, 189, 26, 27, 98, 33 },
{ 47, 23, 889, 24, 899, 23, 657 },
{ 12, 34, 68, 343, 878, 235, 768 },
{ 12, 34, 98, 56, 78, 12, 546 },
{ 26, 78, 2365, 78, 34, 256, 873 } };
sort(array, new int[] {0,1,3});
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
System.out.print("\t");
}
System.out.println();
}
}
}
分享到:
相关推荐
本文实例讲述了Python实现二维数组按照某行或列排序的方法。分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序;是间接排序,lexsort不修改原数组,返回索引。 (对应lexsort 一维数组的是...
本文实例讲述了PHP实现二维数组按照指定的字段进行排序算法。分享给大家供大家参考,具体如下: 遇到问题:把两个数组用php自带的array_merge()函数合并之后,想按照两个数组中共有的’post_time’字段为新数组进行...
本文实例讲述了php自定义函数实现二维数组按指定key排序的方法。分享给大家供大家参考,具体如下: 二维数组官方的排序方法并不好,该函数可以进行指定key的排序,已经测试并使用,代码如下: /*二维数组按指定的...
本文实例讲述了PHP实现二维数组按指定的键名排序的方法。分享给大家供大家参考,具体如下: <?php /*二维数组按指定的键值排序*/ function array_sort($array,$keys,$type='asc'){ if(!isset($array) || !is_...
PHP 多维数组排序 根据二维数组中某个项排序,需要的朋友可以参考下。
主要介绍了PHP按指定键值对二维数组进行排序的方法,涉及PHP二维数组的遍历及array_multisort函数的使用技巧,需要的朋友可以参考下
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路描述:一个数字的下方...
对二维数组按指定键值key排序,对于一些新手朋友或许存在难度,下面为大家介绍下在php中时如何实现的
技巧提示: array_keys($array) //返回所有键名 ...1. PHP二维数组去重复项函数 PHP数组去除重复项有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不
主要介绍了php自定义排序uasort函数,结合实例形式分析了php实现二维数组按指定键值排序的相关操作技巧,需要的朋友可以参考下
主要介绍了php一维二维数组键排序方法,以实例形式总结了针对一维数组的冒泡排序与使用array_multisort()对二位数组按照指定键值排序等方法,具有不错的参考借鉴价值,需要的朋友可以参考下
7.2 二维数组的查找* 题目:二维数组的查找* 题目描述:指定一个二维数组,其每一行从左到右递增排序,从上到到下也是递增排序。//注意php for 里面的逗
这里可以指定按二维数组中的某个值进行多种方法排序,具体看下面的程序注释。复制代码 代码如下:/** * @function 二维数组自然排序 * @author www.phpernote.com * @param array $array 需要排序的数组...
给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序, 如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同...
以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义: 复制代码 代码如下:function array_sort($arr,$keys,$type=’asc’){ $keysvalue = $new_array = array(); foreach ($arr as $k=>$v){ $...