Как манипулировать массивом, похожим на предложение ORDER BY в SQL?

StackOverflow https://stackoverflow.com/questions/2279617

Вопрос

Мои данные были помещены в массив, но, к сожалению, не в том порядке, в котором я хочу...

String[][] databaseToArray = {
  //{"Name", "Channel", "Description", "Amount", "isReady"},
    {"John", "Nick",    "likes",       "2",      "yes"    },
    {"Drew", "MTV",     "dislikes",    "4",      "no"     },
    {"Fred", "CNN",     "okay",        "3",      "no"     },
    {"Beth", "Fox",     "valid",       "1",      "yes"    }
};

Как мне манипулировать этим массивом, чтобы при его переборе порядок был по сумме, аналогично SELECT * FROM "databaseToArray" ORDER BY "Amount" он же

String[][] reorganizedArray = {
  //{"Name", "Channel", "Description", "Amount", "isReady"},
    {"Beth", "Fox",     "valid",       "1",      "yes"    },
    {"John", "Nick",    "likes",       "2",      "yes"    },
    {"Fred", "CNN",     "okay",        "3",      "no"     },
    {"Drew", "MTV",     "dislikes",    "4",      "no"     }
};
Это было полезно?

Решение

Вы захотите пройти Компаратор к методу Arrays.sort.Я не занимался Java уже 5 лет, но это должно быть легко выполнимо.Может быть, кто-нибудь сможет подправить этот пример, который я собираюсь написать, поскольку я почти уверен, что сделаю что-то не так.

String[][] databaseToArray = {
  //{"Name", "Channel", "Description", "Amount", "isReady"},
    {"John", "Nick",    "likes",       "2",      "yes"    },
    {"Drew", "MTV",     "dislikes",    "4",      "no"     },
    {"Fred", "CNN",     "okay",        "3",      "no"     },
    {"Beth", "Fox",     "valid",       "1",      "yes"    }
};

Arrays.sort(databaseToArray, new Comparator<String[]>() {
    public int compare(String[] a, String[] b) {
        return a[3].compareTo(b[3]);
    }
});

Другие советы

Я нашел метод сортировки на сайте обработки, но это только для одномерных массивов...

http://processing.org/reference/sort_.html

   float[] a = { 3, 5, 2, 4, 1 };
   a = sort(a);
   println(a);
// Prints 1, 2, 3, 4, 5
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top