Apakah ada perbedaan antara koleksi yang diurutkan dan yang dipesan ?
java
collections
Johanna
sumber
sumber
IOrderedEnumerable
(lucunya tidak terlalu konsisten dalam. NET. "Urutan penyisipan" hormat dalam kamus di. NET disebutOrderedDictionary
yang oleh beberapa orang dianggap keliru dibandingkan dengan mengatakan,IndexedDictionary
) . Ya di dunia java (sebagian besar di tempat lain juga) yang mereka maksud adalah jawaban Anda. Untuk lebih lanjut lihat di sini .Jawaban:
Sebuah memerintahkan pengumpulan berarti bahwa unsur-unsur dari koleksi memiliki urutan tertentu. Pesanan tidak tergantung pada nilai. Sebuah Daftar adalah contoh.
Sebuah diurutkan koleksi berarti bahwa tidak hanya koleksi memiliki pesanan, tapi pesanan tergantung pada nilai dari elemen. Sebuah SortedSet adalah contoh.
Sebaliknya, koleksi tanpa urutan apa pun dapat mempertahankan elemen dalam urutan apa pun. Sebuah Set adalah contoh.
sumber
Koleksi yang dipesan mempertahankan urutan elemen berdasarkan urutan Anda memasukkan / menghapusnya dari koleksi.
Koleksi yang diurutkan menjaga elemen diurutkan berdasarkan kriteria sortir.
sumber
Java menggunakan "koleksi yang dipesan" untuk berarti koleksi seperti Daftar, di mana (tidak seperti HashSet), koleksi tersebut mengingat urutan elemen apa yang seharusnya dimasukkan. Jadi elemen dapat ditambahkan ke koleksi di "tempat" tertentu dalam urutan .
Java menggunakan "koleksi yang disortir" untuk berarti koleksi seperti SortedSet, di mana (tidak seperti Daftar), urutan iterator yang melintasi koleksi sesuai dengan pembanding yang ditentukan atau urutan alami elemen.
Jadi perbedaannya adalah apakah pemesanan tergantung pada nilai-nilai ("diurutkan"), atau merupakan properti yang unsur-unsur miliki secara independen dari nilainya ("dipesan").
sumber
OrderedDict
di python. Tetapi dalam. NET antarmuka untuk "diurutkan" enumerable disebutIOrderedEnumerable
. Jadi itu tergantung. Hanya mengatakan ..Ya, meskipun konsepnya mirip.
List
adalah koleksi berurutan: setiap elemen memiliki indeks, yang membentuk urutan elemen, tetapi biasanya tidak terkait dengan properti elemen itu sendiri.SortedMap
danSortedSet
diurutkan koleksi, yang berarti bahwa iterasi melalui koleksi akan terjadi dalam urutan yang berasal dari elemen itu sendiri. Sebagai contoh, jika Anda memiliki sebuahSortedSet<String>
maka Strings akan diurutkan sesuai dengan urutan pengurutan leksikografis.Koleksi yang dipesan dapat diurutkan tetapi tidak harus (misalnya setelah menggunakan
Collections.sort()
) ketika pemesanan eksternal identik dengan urutan sortir elemen. Koleksi yang diurutkan selalu dipesan secara tersirat (yaitu selalu ada elemen "pertama", dan itu selalu sama selama Anda tidak menambahkan yang lain, yang lebih kecil).sumber
Koleksi yang dipesan adalah koleksi yang melacak indeks berurutan yang memasukkan setiap elemen.
Koleksi yang diurutkan adalah koleksi yang dipesan ketika pesanan juga tergantung pada nilai elemen yang akan dimasukkan, selama penggunaan antarmuka Sebanding yang menyediakan Anda dengan metode untuk menentukan kriteria penyortiran.
Saya harap ini bisa membantu.
sumber
Diurutkan akan menyiratkan pemesanan sesuai dengan implementasi Sebanding atau Pembanding. Memerintahkan akan menyiratkan bahwa itu mengikuti urutan penyisipan atau definisi urutan lain yang konsisten dan didefinisikan, tetapi sebaliknya sewenang-wenang.
Jadi daftar string yang diurutkan akan diurutkan sesuai dengan metode String.compareTo. Daftar mungkin berisi daftar string yang dimasukkan dalam urutan acak, tetapi urutan itu akan selalu tetap sama.
Tentu saja ada metode di kelas Koleksi untuk mengurutkan daftar.
sumber
Koleksi yang diurutkan biasanya berarti elemen diurutkan dari nilai minimun ke nilai maxinum atau sebaliknya tergantung pada atribut elemen yang digunakan algoritma.
untuk koleksi interger, yang diurutkan mungkin dari jumlah minimum hingga jumlah maksimum untuk koleksi orang, mungkin akan tergerus oleh ketinggian orang atau berat orang, dll.
Ketika berbicara tentang ketertiban, biasanya berarti urutan penyisipan. Pesanan dapat diubah setelah penyortiran
sumber
Koleksi yang Diurutkan vs Koleksi yang Dipesan
1. Koleksi yang disortir
Koleksi yang disortir adalah menyortir koleksi dengan memanfaatkan fitur penyortiran yang disediakan oleh kerangka kerja koleksi Java. Penyortiran terjadi dalam memori JVM yang menjalankan Hibernate, setelah data dibaca dari database menggunakan komparator java.
Jika koleksi Anda tidak besar, ini akan menjadi cara yang lebih efisien untuk mengurutkannya. Seperti yang terjadi dalam memori jvm, itu dapat membuang kesalahan Memori.
2. Koleksi pesanan
Koleksi pesanan menyortir koleksi dengan menentukan klausa urutan demi permintaan dalam permintaan untuk menyortir koleksi ini saat pengambilan. Jika koleksi Anda sangat besar, ini akan menjadi cara yang lebih efisien untuk mengurutkannya. Ini lebih cepat dibandingkan dengan koleksi yang diurutkan.
sumber