Чи є різниця між відсортованою та замовленою колекцією?
Чи є різниця між відсортованою та замовленою колекцією?
Відповіді:
Упорядкована колекція означає , що елементи колекції мають порядок конкретний. Порядок не залежить від значення. Список є прикладом.
Відсортовано по збору коштів , які не тільки колекціям є порядок, але порядок залежить від значення елемента. SortedSet є прикладом.
Навпаки, колекція без будь-якого порядку може підтримувати елементи в будь-якому порядку. Набір є прикладом.
Java використовує "упорядковану колекцію" для позначення такої колекції, як List, де (на відміну від HashSet), колекція пам'ятає, в якому порядку мають бути елементи. Отже, елементи можна додати до колекції у певному "місці" порядку .
Java використовує "відсортовану колекцію" для позначення такої колекції, як SortedSet, де (на відміну від Список), порядок, який ітератор перетинає колекцію, відповідає визначеному компаратору або природному порядку елементів.
Отже, різниця полягає в тому, чи впорядкованість залежить від значень ("відсортовано"), чи є властивістю елементів, які мають незалежно від їх значення ("упорядковані").
OrderedDict
у python. Але в .NET інтерфейс для "відсортованих" чисел викликається IOrderedEnumerable
. Так це залежить. Просто кажу ..
Так, хоча поняття схожі.
List
є впорядкованою колекцією: кожен елемент має індекс, який формує впорядкування елементів, але зазвичай не пов'язаний з будь-якою властивістю самих елементів.
SortedMap
і SortedSet
відсортовані колекції, що означає, що ітерація через колекцію відбуватиметься в послідовності, похідній від самих елементів. Наприклад, якщо у вас є SortedSet<String>
тоді, рядки будуть відсортовані відповідно до лексикографічного порядку сортування.
Впорядкована колекція може бути сортована, але не повинна бути (наприклад, після використання Collections.sort()
), коли зовнішнє впорядкування ідентичне порядку сортування елементів. Впорядкована колекція завжди неявно впорядкована (тобто завжди є "перший" елемент, і він завжди такий самий, доки ви не додасте інший, менший).
Впорядкована колекція - це колекція, яка відслідковує послідовний індекс, в який вставляється кожен елемент.
Сортована колекція - це упорядкована колекція, коли порядок додатково залежить від значення елемента, який потрібно вставити, протягом усього використання Порівнюваного інтерфейсу, який надає вам метод визначення критеріїв сортування.
Я сподіваюся, що це може допомогти.
Сортування має на увазі впорядкування відповідно до впровадження Порівняльного або Порівняльного. Упорядкований означає, що він слідує порядку вставки або іншому визначенню порядку, який є послідовним і визначеним, але в іншому випадку довільним.
Таким чином, відсортований список рядків буде відсортований за методом String.compareTo. Список може містити список рядків, вставлених у довільному порядку, але цей порядок завжди залишатиметься тим самим.
Звичайно, у класі Колекції є методи сортування списку.
Впорядкована колекція зазвичай означає, що елементи сортуються від мінімального значення до максимального значення або навпаки залежно від атрибутів (елементів) елементів, над якими працюють алгоритми.
для колекцій interger, сортування може бути від мінімального числа до максимального числа для колекції для людини, воно може бути розсіяне за ростом осіб або вагою осіб тощо.
Якщо говорити про порядок, то це зазвичай означає порядок вставки. Порядок може бути змінено після сортування
Відсортована колекція проти замовленої колекції
1. Відсортований збірник
Відсортована колекція - це сортування колекції за допомогою функцій сортування, наданих рамкою колекцій Java. Сортування відбувається в пам'яті JVM, який працює в сплячому режимі, після зчитування даних із бази даних за допомогою компаратора Java.
Якщо ваша колекція не велика, це буде більш ефективним способом її сортування. Як це відбувається в jvm-пам'яті, вона може викинути помилку пам'яті.
2. Збір замовлень
Колекція замовлень - це сортування колекції шляхом вказівки порядку в порядку запиту для сортування цієї колекції під час пошуку. Якщо ваша колекція дуже велика, це буде більш ефективним способом її сортування. Це швидко порівняно з відсортованою колекцією.
IOrderedEnumerable
(смішна річ, це не дуже послідовно в .NET. Словник "порядку вставки" в .NET називається словником,OrderedDictionary
який деякі вважають неправильним порівняно з, наприклад,IndexedDictionary
) . Так, у світі java (здебільшого в інших місцях) вони означають, що ти маєш у відповідях. Детальніше дивіться тут .