Czy jest jakaś różnica między kolekcją posortowaną a uporządkowaną ?
java
collections
Johanna
źródło
źródło
IOrderedEnumerable
(zabawną rzeczą jest to, że nie jest on zbyt spójny w .NET. W słowniku .NET nazywa się „kolejność wstawiania”,OrderedDictionary
co niektórzy uważają za mylące w porównaniu z powiedzeniem,IndexedDictionary
) . Tak, w świecie Java (głównie gdzie indziej) mają na myśli to, co masz w odpowiedziach. Więcej tutaj .Odpowiedzi:
Uporządkowanego zbioru oznacza, że elementy kolekcji mają rozkaz konkretnego. Kolejność jest niezależna od wartości. Przykładem jest lista .
Klasyfikowane gromadzenia środków, które nie tylko zbieranie mieć porządek, ale kolejność zależy od wartości elementu. SortedSet przykład.
Natomiast kolekcja bez żadnego porządku może utrzymywać elementy w dowolnej kolejności. Zestaw jest przykładem.
źródło
Uporządkowana kolekcja zachowuje kolejność elementów w oparciu o sekwencję, w której umieszczasz elementy / usuwasz je z kolekcji.
Posortowana kolekcja utrzymuje elementy posortowane na podstawie kryteriów sortowania.
źródło
Java używa „uporządkowanego zbioru” w znaczeniu zbioru, takiego jak List, gdzie (w przeciwieństwie do HashSet) kolekcja zapamiętuje kolejność elementów. Dzięki temu elementy można dodawać do kolekcji w określonym „miejscu” w kolejności .
W języku Java „posortowana kolekcja” oznacza zbiór, taki jak SortedSet, gdzie (w przeciwieństwie do List) kolejność przechodzenia przez iterator w kolekcji jest zgodna z określonym komparatorem lub naturalną kolejnością elementów.
Różnica polega więc na tym, czy kolejność zależy od wartości („posortowane”), czy też jest właściwością, którą elementy posiadają niezależnie od ich wartości („uporządkowane”).
źródło
OrderedDict
w Pythonie. Ale w .NET nazywa się interfejs dla "sortowanych" wyliczalnychIOrderedEnumerable
. Więc to zależy. Tylko mówię ...Tak, chociaż koncepcje są podobne.
List
jest zbiorem uporządkowanym: każdy element ma indeks, który tworzy porządek elementów, ale zwykle nie jest powiązany z żadną właściwością samych elementów.SortedMap
iSortedSet
są kolekcjami posortowanymi, co oznacza, że iteracja przez kolekcję będzie się odbywać w sekwencji pochodzącej z samych elementów. Na przykład, jeśli masz aSortedSet<String>
to ciągi znaków zostaną posortowane zgodnie z leksykograficznym porządkiem sortowania.Zamówioną kolekcję można sortować, ale nie musi być (np. Po użyciu
Collections.sort()
), gdy porządek zewnętrzny jest identyczny z porządkiem sortowania elementów. Posortowana kolekcja jest zawsze niejawnie uporządkowana (tj. Zawsze istnieje „pierwszy” element i zawsze jest taki sam, o ile nie dodasz kolejnego, mniejszego).źródło
Zbiór uporządkowany to zbiór, który śledzi kolejny indeks, do którego wstawiany jest każdy element.
Posortowana kolekcja jest uporządkowaną kolekcją, gdy kolejność dodatkowo zależy od wartości elementu, który ma zostać wstawiony, podczas korzystania z interfejsu Porównywalne, który zapewnia metodę definiowania kryteriów sortowania.
Mam nadzieję, że to pomoże.
źródło
Sortowanie oznaczałoby porządkowanie zgodnie z implementacją Porównywalny lub Porównawczy. Uporządkowany oznaczałby, że jest zgodny z kolejnością reklamową lub inną definicją zamówienia, która jest spójna i zdefiniowana, ale poza tym arbitralna.
Tak więc posortowana lista ciągów zostanie posortowana zgodnie z metodą String.compareTo. Lista może zawierać listę ciągów znaków wstawionych w dowolnej kolejności, ale kolejność ta zawsze pozostanie taka sama.
Oczywiście w klasie Collections istnieją metody służące do sortowania listy.
źródło
Posortowana kolekcja zwykle oznacza, że elementy są sortowane od wartości minimalnej do wartości maksymalnej lub odwrotnie, w zależności od atrybutu (atrybutów) elementów, na których działają algorytmy.
w przypadku zbiorów zbiorczych sortowane mogą być od minimalnej do maksymalnej ilości dla zbioru osobowego, mogą być sortowane ze względu na wzrost osób lub wagę osób itp.
Mówiąc o zamówieniu, zwykle oznacza to kolejność wstawiania. Kolejność można zmienić po posortowaniu
źródło
Zbiór posortowany a zbiór uporządkowany
1. Zbiór posortowany
Posortowana kolekcja to sortowanie kolekcji przy użyciu funkcji sortowania udostępnianych przez strukturę kolekcji Java. Sortowanie odbywa się w pamięci maszyny JVM, która uruchomiła Hibernate, po odczytaniu danych z bazy danych za pomocą komparatora Java.
Jeśli Twoja kolekcja nie jest duża, będzie to skuteczniejszy sposób jej sortowania. Jak to się dzieje w pamięci jvm, może wyrzucić błąd Out of Memory.
2. Odbiór zamówienia
Kolekcja zamówień polega na sortowaniu kolekcji przez określenie klauzuli order-by w zapytaniu w celu sortowania tej kolekcji podczas pobierania. Jeśli Twoja kolekcja jest bardzo duża, będzie to skuteczniejszy sposób jej sortowania. Jest szybka w porównaniu z posortowaną kolekcją.
źródło