Я создал список ArrayList, содержащий ссылки на объекты, содержащие различные объемы данных.
Я хочу отсортировать объект по определенным элементам своих данных.
Я успешно сделал это, используя collections.sort
вместе с анонимным классом, определяющим новый компаратор.
Я был успешен в каждом из новых компараторов, которые я создал, что привело к правильному порядку сортировки.
Для того же ArrayList как можно сделать компаратор, который бы давал исходный ввод порядка ArrayList. Я знаю, что ArrayList сохраняет порядок добавления объектов, порядок вставки. Но после сортировки ArrayList с другими компараторами, как мне отсортировать ArrayList обратно в исходный порядок, в котором он был? Это единственная вещь, которая ставит меня в тупик, и я не могу понять это.
Изменить: я должен уточнить, что это для задания, в котором в инструкциях говорится включить компаратор по умолчанию/исходный для получения несортированного ввода. Это просто не имеет смысла для меня, учитывая то, что мы упомянули. ArrayList сохранит порядок вставки при его добавлении, но при сортировке он будет потерян. я не понимаю, как вы могли бы создать компаратор, который будет сортировать исходный список.
Edit2: мне дан ArrayList, который, как ожидается, будет хранить несколько объектов, содержащих некоторые элементы данных, которые будут отсортированы, например, по их именам или возрасту. Эти компараторы было легко сделать, и я делаю это успешно. Назначение также требует исходного компаратора, который отображает данные в том виде, в каком они были вставлены. Теперь эти компараторы передаются в вызове метода, в котором этот метод будет использовать collections.sort для каждого другого компаратора. Однако он просит сначала использовать оригинальный компаратор.
Идея оригинального компаратора вообще кажется нелогичной. Тот факт, что он используется первым, поэтому никакая другая сортировка еще не выполнялась, создает впечатление, что она была сделана только для того, чтобы соответствовать списку аргументов вызова метода для отображения данных. Другими словами, я думаю, исходный компаратор просто ничего не должен возвращать..?
ArrayList
перед сортировкой, чтобы сохранить состояние; и вы могли бы использовать эту клонированную копию позже. - person rev_dihazum   schedule 16.04.2016