Есть ли разница между отсортированной и упорядоченной коллекциями?
Есть ли разница между отсортированной и упорядоченной коллекциями?
Ответы:
Упорядоченная коллекция означает , что элементы коллекции имеют порядок конкретный. Порядок не зависит от значения. Список является примером.
Отсортировано по сбору средств , которые не только коллекциям есть порядок, но порядок зависит от значения элемента. SortedSet является примером.
Напротив, коллекция без какого-либо порядка может поддерживать элементы в любом порядке. Набор является примером.
Java использует «упорядоченную коллекцию» для обозначения коллекции, такой как List, где (в отличие от HashSet) коллекция запоминает, в каком порядке должны быть элементы. Таким образом, элементы могут быть добавлены в коллекцию в определенном «месте» в порядке ,
Java использует «отсортированную коллекцию» для обозначения коллекции, такой как SortedSet, где (в отличие от List) порядок, в котором итератор проходит по коллекции, соответствует заданному Comparator или естественному порядку элементов.
Таким образом, разница в том, зависит ли порядок от значений («отсортировано») или это свойство, которое элементы имеют независимо от их значения («упорядочено»).
OrderedDict
в python. Но в .NET интерфейс для «отсортированного» перечислимого называется IOrderedEnumerable
. Так что это зависит от обстоятельств. Просто говорю ..
Да, хотя концепции похожи.
List
- это упорядоченная коллекция: каждый элемент имеет индекс, который формирует порядок элементов, но обычно не связан с каким-либо свойством самих элементов.
SortedMap
и SortedSet
являются отсортированными коллекциями, что означает, что итерация по коллекции будет происходить в последовательности, полученной из самих элементов. Например, если у вас есть, SortedSet<String>
то строки будут отсортированы в соответствии с лексикографическим порядком сортировки.
Упорядоченную коллекцию можно сортировать, но не обязательно (например, после использования Collections.sort()
), если внешний порядок совпадает с порядком сортировки элементов. Сортированная коллекция всегда неявно упорядочена (т.е. всегда есть «первый» элемент, и он всегда один и тот же, пока вы не добавляете другой, меньший по размеру).
Упорядоченная коллекция - это коллекция, которая отслеживает последовательный индекс, в который вставлен каждый элемент.
Сортированная коллекция - это упорядоченная коллекция, когда порядок дополнительно зависит от значения элемента, который нужно вставить, на протяжении всего использования интерфейса Comparable, который предоставляет вам метод для определения критериев сортировки.
Надеюсь, это поможет.
Сортировка подразумевает упорядочение в соответствии с реализацией Comparable или Comparator. Упорядоченный будет означать, что он следует порядку вставки или другому определению порядка, которое является согласованным и определенным, но в остальном произвольным.
Таким образом, отсортированный список строк будет отсортирован в соответствии с методом String.compareTo. Список может содержать список строк, вставленных в произвольном порядке, но этот порядок всегда остается неизменным.
Конечно, в классе Collections есть методы для сортировки списка.
Сортированная коллекция обычно означает, что элементы отсортированы от минимального значения до максимального значения или наоборот, в зависимости от атрибута (ов) элементов, с которыми работают алгоритмы.
для нескольких коллекций сортировка может быть от минимального числа до максимального числа для коллекции людей, она может зависеть от роста людей или веса людей и т. д.
Когда говорят о порядке, это обычно означает порядок вставки. Порядок может быть изменен после сортировки
Отсортированная коллекция против упорядоченной коллекции
1. Отсортированная коллекция
Сортированная коллекция сортирует коллекцию с использованием функций сортировки, предоставляемых платформой коллекций Java. Сортировка происходит в памяти JVM, на которой запущен Hibernate, после чтения данных из базы данных с помощью компаратора Java.
Если ваша коллекция невелика, это будет более эффективный способ ее сортировки. Как и в случае с памятью jvm, это может вызвать ошибку Out of Memory.
2. Сбор заказов
Коллекция заказов сортирует коллекцию путем указания в запросе предложения order-by для сортировки этой коллекции при извлечении. Если ваша коллекция очень большая, это будет более эффективный способ ее сортировки. Это быстро по сравнению с сортированной коллекцией.
IOrderedEnumerable
(забавно то, что он не очень согласован в .NET. В .NET вызывается словарь «порядок вставки» в отношении словаря,OrderedDictionary
что, по мнению некоторых, является неправильным по сравнению со словами,IndexedDictionary
) . Да, в мире Java (в основном в другом месте) они имеют в виду то, что у вас есть в ответах. Подробнее см. Здесь .