Сортированный вид списка - PullRequest
       1

Сортированный вид списка

1 голос
/ 25 сентября 2011

возможно ли как-то получить отсортированное List представление List с элементами из исходного списка, изменить элементы, например, установить свойство, но исходный список должен отражать изменения?

Фон - это я сортирую два списка, затем для каждого равного элемента я устанавливаю свойство (в основном это пересечение), но, наконец, мне нужен несортированный список с измененными элементами.

С уважением,
Johannes

Ответы [ 3 ]

1 голос
/ 25 сентября 2011

Должен ли это быть список? Если вы сохраните свои элементы в TreeSet, они всегда будут отсортированы при их повторном просмотре, даже после добавления / удаления элементов. Помните, однако, что изменение элемента уже в TreeSet может нарушить порядок сортировки. Вы можете удалить и добавить элемент к TreeSet, чтобы обойти это.

Если вам нужно использовать список, вы можете использовать Collections.sort(List list) после добавления или изменения элемента. Конечно, если вам придется часто его называть, это приведет к снижению производительности. Если производительность является проблемой, вы можете просто вставить новый элемент (или переместить измененный), чтобы сохранить отсортированный порядок, который будет дешевле, чем его сортировка: O (n) против O (n * log (n))

1 голос
/ 25 сентября 2011

Вероятно, самое простое, что нужно сделать, это добавить элементы в новый список, отсортировать этот список, и при изменении элементов исходные элементы все равно будут изменены ...

List<?> origA;
List<?> origB;

List<?> newA = new ArrayList<?>(origA);
List<?> newB = new ArrayList<?>(origB);

Collections.sort(newA);
Collections.sort(newB);

// do mods
1 голос
/ 25 сентября 2011

Если List содержит ссылки на объекты (не примитивные типы данных), просто скопируйте список, отсортируйте его и измените элементы.

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