Сортируйте пары ключ-значение сначала по значению, а затем по ключу.(похоже на сортировку по Radix).Мне нужно поддерживать отношения ключ-значение - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь удалить дубликаты из пар ключ-значение. И сортировка данных сначала кажется лучшим способом сделать это. У меня есть кортежи (оба значения являются целочисленными), поэтому код не обязательно должен работать для разных объектов, и если он может быть оптимизирован для целых чисел, это было бы здорово. Я хотел бы отсортировать все свои пары сначала по значению, а затем по ключу (обратите внимание, что мне нужны обе операции при сохранении отношения ключ-значение)

Я новичок в Java, и мне было интересно, существуют ли в Map методы сортировки (или любая другая структура данных, которую я могу использовать), которая бы сделала это для меня. Поскольку набор данных, который я использую, огромен (> 50 ГБ), я должен экономить время везде, где это возможно. Я попытался просто добавить все пары в набор (как объединенную строку обоих целых чисел) и затем удалить их, но это занимает слишком много времени. Я открыт для переключения на алгоритмы внешней сортировки, если это необходимо (я использую 64 ГБ памяти, поэтому все, что занимает больше, чем O (n) места, будет проблематичным)

1 Ответ

0 голосов
/ 13 июня 2019

Ну, вы можете сортировать и удалять дубликаты, сохраняя эти данные в TreeMap. TreeMap является реализацией Map, где ключи в TreeMap отсортированы с использованием их естественного порядка . Мы могли бы реализовать Comparable<Data_Type> и переопределить public int compareTo(T t), чтобы определить порядок сортировки.

Поскольку это не хэш с несколькими ключами, в Map может существовать только один ключ. Таким образом, дублирующийся объект будет автоматически перезаписан.

Посмотрите по этой ссылке: Сортировка HashMap в Java

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