Memahami Tujuan Memulakan Saiz ArrayList
Kelas Java ArrayList menawarkan fleksibiliti untuk menentukan saiz awal semasa penciptaan. Walau bagaimanapun, ia sering mengelirukan mengapa ini perlu jika anda tidak dapat mengakses ruang yang diperuntukkan dengan segera. Soalan ini menyelidiki perbezaan antara saiz dan kapasiti ArrayList untuk menjelaskan perkara ini.
Saiz Permulaan vs. Kapasiti
Apabila memulakan ArrayList dengan ArrayList baharu< >(10), anda tidak menentukan saiznya tetapi kapasitinya. Kapasiti merujuk kepada bilangan elemen yang boleh dipegang oleh ArrayList tanpa perlu mengagihkan semula struktur data asasnya. Dengan menetapkan kapasiti awal, anda mengoptimumkan prestasi dengan mengelakkan pengagihan semula yang tidak perlu semasa anda menambah elemen.
Menambah Elemen
Bertentangan dengan andaian anda, tambah(int index, Object element ) sememangnya menambah elemen pada indeks yang ditentukan. Walau bagaimanapun, ini memerlukan senarai mempunyai kapasiti yang mencukupi untuk menampung elemen baharu. Apabila anda mencuba arr.add(5, 10), anda menerima pengecualian di luar sempadan kerana ArrayList belum mempunyai elemen, menghasilkan kapasiti kosong.
Contoh: Memulakan dan Mengisi ArrayList
Untuk memulakan ArrayList dengan kapasiti 10 dan mengisinya dengan elemen, anda boleh menggunakan gelung:
<code class="java">ArrayList<Integer> arr = new ArrayList<>(10); for (int i = 0; i < 10; i++) { arr.add(0); }</code>
Sekarang, anda boleh mengubah suai atau mendapatkan semula elemen pada indeks 0 hingga 9, menggunakan kapasiti awal yang anda tetapkan.
Ringkasnya, menetapkan kapasiti awal untuk ArrayList membantu mengoptimumkan prestasi dengan mengelakkan overhed pengagihan semula apabila senarai anda berkembang. Walaupun saiz awal ArrayList adalah sifar, kapasiti memastikan ruang yang mencukupi tersedia untuk menampung elemen berikutnya dengan cekap.
Atas ialah kandungan terperinci Mengapakah Memulakan Saiz ArrayList Penting Jika Anda Tidak Dapat Mengakses Ruang Yang Diperuntukkan Dengan Segera?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!