Нужно сортировать столбцы по строке - PullRequest
0 голосов
/ 22 мая 2018

Мне нужно отсортировать столбцы на основе первой строки.Может ли кто-нибудь помочь мне в достижении этого, например.В основном у меня есть 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 голосов
/ 22 мая 2018

Поскольку вы не предоставили нам ни одного своего кода, я не смогу сделать больше, чем объяснить одно решение.Предположим, у вас есть следующая матрица, которая потенциально может храниться в 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, тогда я могу помочь вам написать код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...