Rumah  >  Artikel  >  Java  >  Mengapa Saya Tidak Boleh Mengakses Kapasiti Permulaan ArrayList dalam Java?

Mengapa Saya Tidak Boleh Mengakses Kapasiti Permulaan ArrayList dalam Java?

Susan Sarandon
Susan Sarandonasal
2024-11-03 16:36:29666semak imbas

Why Can't I Access the Initial Capacity of an ArrayList in Java?

Saiz Awal ArrayList: Menyelidiki Kapasiti vs. Saiz

Di Java, mencipta ArrayList dengan saiz awal adalah amalan biasa untuk mengoptimumkan prestasi. Walau bagaimanapun, adalah penting untuk memahami perbezaan antara saiz dan kapasiti apabila menggunakan kaedah add().

Soalan:

Apabila mencipta ArrayList dengan saiz awal, mengapa tidak bolehkah anda mengakses ruang yang diperuntukkan?

Jawapan:

Nilai saiz awal yang anda berikan semasa mencipta ArrayList menggunakan set ArrayList pembina<>(initialSize) kapasiti dalaman ArrayList. Saiz, sebaliknya, mewakili bilangan elemen pada masa ini dalam ArrayList.

Apabila anda menambah elemen pada ArrayList menggunakan kaedah tambah(indeks, elemen), anda menentukan kedudukan (indeks) di mana elemen akan dimasukkan. Jika anda cuba menambah elemen pada indeks yang melebihi saiz semasa ArrayList, anda akan menghadapi pengecualian di luar sempadan.

Ini kerana kaedah add() mengubah suai saiz ArrayList dengan menambah ia oleh seorang. Ia tidak menjejaskan kapasiti, yang kekal tidak berubah.

Untuk menambah berbilang elemen pada kapasiti awal ArrayList, anda boleh menggunakan gelung:

<code class="java">for (int i = 0; i < initialSize; i++) {
  arr.add(0);
}</code>

Gelung ini menambah elemen secara berulang pada ArrayList , dengan berkesan menggunakan kapasiti awal yang anda tetapkan semasa penciptaannya. Setelah gelung selesai, anda boleh mengubah suai elemen pada indeks 0 kepada (Saiz awal - 1).

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mengakses Kapasiti Permulaan ArrayList dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn