Dalam C # misalnya, array memiliki properti Panjang. Tetapi jenis koleksi lain seperti daftar, dll. Memiliki properti Count. Apakah ada alasan mengapa keduanya berbeda? Jika demikian saya ingin tahu.
c#
programming-languages
history
collections
Arunster
sumber
sumber
Jawaban:
Mereka diberi nama berbeda karena secara semantik mereka sangat berbeda:
Hitungan koleksi adalah jumlah item yang saat ini disimpan di dalamnya dan berpotensi berubah seiring waktu.
Panjang array adalah jumlah maksimum item yang dapat dipegang (itu akan memiliki panjang 10 bahkan jika Anda belum menyimpan banyak item di dalamnya) dan tidak dapat diubah.
Contoh:
Jika saya memiliki ember yang dapat memuat maksimal 100 bola di dalamnya, ia memiliki Panjang 100. Jika saya memasukkan 50 bola ke dalamnya, ia memiliki Hitungan 50.
Jika saya menambahkan 10 bola lagi Hitungan menjadi 60 tetapi Panjangnya masih 100. Untuk mengubah Panjang saya perlu mendapatkan ember yang berbeda.
Array mungkin menggunakan panjang kata karena di bawah kap itu mengalokasikan blok yang berdekatan (panjang) memori berdasarkan kapasitas dikalikan dengan ukuran item. Meskipun fakta bahwa kelas Daftar menggunakan "Kapasitas" untuk konsep yang serupa (meskipun bisa berubah) menyarankan array dapat menggunakan kata "Panjang" untuk alasan historis.
sumber
T[]
dengan panjang N selalu menyimpan nilai tipe N persisT
. Semantik, tidak semua nilai-nilai itu mungkin bermakna (mereka mungkinnull
misalnya), tetapi mereka ada. Ini berbeda dari arti biasa kapasitas (seperti yang digunakanList<T>
misalnya). Anda benar yangCount
bisa berubah sementaraLength
tidak bisa. Dan lagi, tidak ada mandat yangCount
akan, pada kenyataannya, berubah. Ini juga digunakan untuk koleksi abadi.count
-properti.