Sıralanmış ve sıralı bir koleksiyon arasında herhangi bir fark var mı ?
Sıralanmış ve sıralı bir koleksiyon arasında herhangi bir fark var mı ?
Yanıtlar:
Bir koleksiyon sipariş toplama elemanları belli bir düzene sahip olduğunun araçları. Sipariş, değerden bağımsızdır. Bir Liste bir örnektir.
bir koleksiyon sıralanmış toplama düzeni var sadece aracı ancak sipariş elemanının değerine bağlıdır. Bir SortedSet bir örnektir.
Buna karşılık, herhangi bir sıraya sahip olmayan bir koleksiyon , öğeleri herhangi bir sırada tutabilir. Bir Set bir örnektir.
Java, List gibi bir koleksiyonu ifade etmek için "sıralı koleksiyon" kullanır; burada (HashSet'in aksine) koleksiyon, öğelerin hangi sırada olması gerektiğini hatırlar. Böylece öğeler, koleksiyona sıradaki belirli bir "yerde" eklenebilir .
Java, SortedSet gibi bir koleksiyonu ifade etmek için "sıralı koleksiyon" kullanır; burada (Listeden farklı olarak), yineleyicinin koleksiyonu gezme sırası, belirli bir Karşılaştırıcıya veya öğelerin doğal sırasına uygundur.
Dolayısıyla fark, sıralamanın değerlere ("sıralı") bağlı mı yoksa öğelerin değerlerinden bağımsız olarak sahip olduğu bir özellik mi ("sıralı") olmasıdır.
OrderedDictpython. Ancak .NET'te "sıralı" numaralandırılabilir arabirim çağrılır IOrderedEnumerable. Yani değişir. Sadece söylüyorum ..
Evet, kavramlar benzer olsa da.
List sıralı bir koleksiyondur: her öğenin, öğelerin sırasını oluşturan, ancak genellikle öğelerin herhangi bir özelliğiyle ilgili olmayan bir dizini vardır.
SortedMapve SortedSetsıralı koleksiyonlardır; bu, koleksiyon boyunca yinelemenin, öğelerin kendilerinden türetilen bir sırayla gerçekleşeceği anlamına gelir. Örneğin, bir SortedSet<String>diziniz varsa Dizeler sözlükbilimsel sıralama düzenine göre sıralanır.
Bir Koleksiyon sipariş edebilirsiniz (mesela kullandıktan sonra sıralanmaya ama olmak zorunda değildir Collections.sort()harici sipariş elemanları sıralama düzeni ile özdeş olduğunda). Sıralanmış bir koleksiyon her zaman dolaylı olarak sıralanır (yani her zaman bir "ilk" öğe vardır ve başka, daha küçük bir tane eklemediğiniz sürece her zaman aynıdır).
Sıralı bir koleksiyon, her öğenin eklendiği ardışık bir dizini izleyen bir koleksiyondur.
Sıralanmış bir koleksiyon, size sıralama ölçütlerini tanımlamak için bir yöntem sağlayan Karşılaştırılabilir arayüzün kullanımı boyunca, sıra ek olarak eklenecek öğenin değerine bağlı olduğunda sıralı bir koleksiyondur.
Umarım yardımcı olabilir.
Sıralı, Comparable veya Comparator uygulamasına göre sıralama anlamına gelir. Sıralı, ekleme emrini veya tutarlı ve tanımlanmış, ancak başka türlü keyfi olan başka bir sipariş tanımını takip ettiğini ima eder.
Dolayısıyla, sıralı dizeler listesi String.compareTo yöntemine göre sıralanır. Bir liste, rastgele sırayla eklenen dizelerin bir listesini içerebilir, ancak bu sıra her zaman aynı kalacaktır.
Elbette, Collections sınıfında bir listeyi sıralamak için yöntemler vardır.
Sıralı bir koleksiyon genellikle, algoritmaların çalıştığı öğelerin özniteliklerine bağlı olarak öğelerin minimum değerden maksimum değere veya tam tersi şekilde sıralandığı anlamına gelir.
Bir interger koleksiyonları için, sıralama, bir kişi koleksiyonu için minimum sayıdan maksimum sayıya kadar olabilir, kişilerin boylarına veya kişilerin ağırlığına, vb. göre sınıflandırılabilir.
Sipariş hakkında konuşurken, genellikle ekleme sırası anlamına gelir. Sıralamadan sonra sıra değiştirilebilir
Sıralanmış Koleksiyon - Sıralanmış Koleksiyon
1. Sıralanmış koleksiyon
Sıralanmış bir koleksiyon, Java koleksiyonları çerçevesi tarafından sağlanan sıralama özelliklerini kullanarak bir koleksiyonu sıralar. Sıralama, veriler java karşılaştırıcı kullanılarak veritabanından okunduktan sonra, Hibernate çalıştıran JVM belleğinde gerçekleşir.
Koleksiyonunuz büyük değilse, onu sıralamak daha verimli olacaktır. Jvm belleğinde olduğu gibi, Bellek Yetersiz hatası verebilir.
2. Sipariş toplama
Sipariş koleksiyonu, alma sırasında bu koleksiyonu sıralamak için sorguda order-by yan tümcesini belirterek bir koleksiyonu sıralıyor. Koleksiyonunuz çok büyükse, onu sıralamak daha verimli olacaktır. Sıralanmış koleksiyona göre hızlıdır.
IOrderedEnumerable(komik olan şey, .NET'te çok tutarlı değildir. NET'te bir "ekleme sırası" saygılı sözlüğe denirOrderedDictionaryki, bazıları bunun yanlış bir adlandırma olduğuna inanılır,IndexedDictionary) . Evet, java dünyasında (çoğunlukla başka yerlerde de) cevaplarda ne olduğunu kastediyorlar. Daha fazlası için buraya bakın .