У меня есть список объектов, реализующих сопоставимый интерфейс, который я хочу отсортировать. Я не хочу, чтобы исходный список возвращался отсортированным, и я не хочу, чтобы новый список возвращался в отсортированном порядке. Я хочу вернуть int[], который отражает порядок сортировки исходного списка.
Если у меня есть список целых чисел = { 50, 40, 30, 20, 10 }, я хочу вернуть int[]{ 4,3,2,1,0}.
В настоящее время я создаю IndexedComparable для каждой записи в исходном списке, которая имеет объект по каждому индексу, а также исходный индекс объекта. Этот IndexedComparable имеет метод CompareTo(), который сравнивает два объекта, хранящиеся в двух IndexedComparables. Затем я сортирую этот список IndexedComparables и после сортировки извлекаю индекс для каждой записи в int[]. Это работает нормально, но у меня есть массивы, которые мне нужно отсортировать, длиной в миллионы записей, то есть мне нужно создать миллионы объектов IndexedComparables. Есть ли более чистый способ сделать это?
Подробнее здесь: https://stackoverflow.com/questions/798 ... of-objects