需要根据行对列进行排序

时间:2018-05-22 13:45:10

标签: java sorting

我需要根据第一行对列进行排序。任何人都可以帮助我实现这一目标。基本上我有一个csv。

我有一个矩阵,如: -

B,    C,    D,    E,    A
1,    11,   12,   23,   67
111,  112,  114,  118,  200

我希望使用第1行对此矩阵进行排序,因此A应该首先出现,因此其他行中的列相同。

A,    B,   C,     D,   E   
67,   1,   11,    12,   23
200,  111, 112,  114,  118


CSV Input:-  B,C,D,E,A\n1,11,12,23,67\n,111,112,114,118,200
CSV Output:- A,B,C,D,E\n67,1,11,12,23\n,200,111,112,114,118

有人可以帮助我或指导我如何实现同样的目标。

1 个答案:

答案 0 :(得分:2)

由于您还未向我们提供任何代码,因此我无法解释一个解决方案。假设您有以下矩阵,该矩阵可能存储在Object[][]中,其中Object是您所关注的任何类型:

Object[][] = [
    [B,   C,   D,   E,   A  ],
    [1,   11,  12,  23,  67 ],
    [111, 112, 114, 118, 200]
]

您现在可以进行矩阵的转置,结果如下:

Object[][] = [
    [B, 1,  111],
    [C, 11, 112],
    [D, 12, 114],
    [E, 23, 118],
    [A, 67, 200]
]

现在,只需按每行的第一个元素对此矩阵进行排序即可生成以下内容:

Object[][] = [
    [A, 67, 200],
    [B, 1,  111],
    [C, 11, 112],
    [D, 12, 114],
    [E, 23, 118]
]

最后,如果您希望以原始形式恢复原状,请再次进行转置:

Object[][] = [
    [A,   B,   C,   D,   E  ],
    [67,  1,   11,  12,  23 ],
    [200, 111, 112, 114, 118]
]

如果您向我们提供了一些代码,告诉我们如何存储CSV中包含的数据,那么我可以帮助您编写代码。