java - 在Java中对多维字符数组进行排序

标签 java sorting multidimensional-array character

我有一个多维字符串数组 process[100][2],如下所示:

是B

CD

A B

BC

F E

EY

FD

Y X

EG

我想按第一列字母对其进行排序,以便最终结果如下:

A B

BC

CD

EY

EG

F E

FD

是B

Y X 我尝试使用下面的代码,但这并不能解决问题:

Arrays.sort(process, new Comparator<String[]>() {
        @Override

        public int compare(final String[] entry1, final String[] entry2) {
                final String time1 = entry1[0];
                final String time2 = entry2[0];
                return time1.compareTo(time2);

        }
});

我得到的输出是:

A B

BC

CD

EY

F E

是B

EG

FD

Y X

最佳答案

以下单元测试演示了一个有效的Comparator实现。测试也会打印出结果。

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

import junit.framework.TestCase;

public class ArrayTest extends TestCase {

    public class Sorter implements Comparator {
        public int compare(Object o1, Object o2){
            String[] arrayOne = (String[])o1;
            String[] arrayTwo = (String[])o2;
            return arrayOne[0].compareTo(arrayTwo[0]);
        }
    }

    public void testSort() {
        String[][] testData = {
                {"Y", "B"},
                {"C", "D"},
                {"A", "B"},
                {"B", "C"},
                {"F", "E"},
                {"E", "Y"},
        };

        Arrays.sort(testData, new Sorter());

        String[][] expectedOutput = {
                {"A", "B"},
                {"B", "C"},
                {"C", "D"},
                {"E", "Y"},
                {"F", "E"},
                {"Y", "B"},
        };

        for(int i = 0; i < testData.length; ++i) {            
            System.out.println(testData[i][0] + " " + testData[i][1]);
            assertEquals(expectedOutput[i][0], testData[i][0]);
            assertEquals(expectedOutput[i][1], testData[i][1]);            
        }
    }
}

关于java - 在Java中对多维字符数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5889304/

相关文章:

没有多个条目的javascript排序

PHP:通过值条目获取数组键。

visualization - 支持向量机背后的基本原理

java - 正则表达式从多行匹配到字符串缓冲区末尾并替换为 ""

java - 获取 "cannot activate web view"

java - EDT 是否可能有太多工作?

json - Powershell 按字母顺序对 PSObject 进行排序

java - 带有 angularJs 的 Spring

c++ - 如何合并 2 个部分排序的数组?

javascript - React Native 中的嵌套 ngfor 等价物