Saya mendeklarasikan sebuah array seperti yang ditunjukkan di bawah ini:
int[] arr = new int[10];
Kemudian saya memberikan nilai berikut ke array:
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
Kemudian saya mendeklarasikan dan menginisialisasi variabel integer:
int arrayLength = arr.length;
Ini akan berguna untuk menemukan ukuran sebenarnya tetapi adakah metode untuk menemukan ukuran logis dari array?
Pertama-tama,
length
adalah properti, jadi itu akan menjadiarr.length
bukanarr.length()
.Dan itu akan mengembalikan 10, ukuran yang dinyatakan. Elemen yang tidak Anda deklarasikan secara eksplisit diinisialisasi dengan 0.
sumber
Untuk menemukan panjang sebuah array,
A
Anda harus menggunakanlength
properti. Ini sebagaiA.length
, jangan gunakanA.length()
terutama digunakan untuk ukuran objek yang berhubungan dengan string.Properti length akan selalu menampilkan total ruang yang dialokasikan ke array selama inisialisasi.
Jika Anda pernah memiliki masalah seperti ini, cara sederhana adalah dengan menjalankannya. Selamat Memprogram!
sumber
Array adalah alokasi memori statis, jadi jika Anda menginisialisasi array bilangan bulat:
Panjangnya akan selalu 15, tidak peduli berapa banyak indeks yang diisi.
Dan satu hal lagi, ketika Anda menginisialisasi array integer, semua indeks akan diisi dengan "0".
sumber
Di Java, ukuran "aktual" dan "logis" Anda sama. Run-time mengisi semua slot array dengan nilai default pada alokasi. Jadi, Anda
a
berisi 10.sumber
Dalam kasus ini, arr.length akan mengembalikan 10, ukuran array yang Anda alokasikan. Ukuran logika tidak benar-benar berlaku di sini, karena ini adalah larik dengan panjang tetap.
Saat Anda menginisialisasi array:
Java akan membuat larik dengan 10 elemen dan menginisialisasi semuanya ke 0. Lihat spesifikasi bahasa Java untuk detail nilai awal ini dan tipe primitif lainnya.
sumber
arr
adalahint
tipe array yang memiliki ukuran10
. Ini adalah larik10
elemen. Jika kita tidak menginisialisasi sebuah array dengan elemen array default berisi nilai default. Dalam kasus nilai default int array adalah0
.length adalah properti yang dapat diterapkan untuk sebuah array.
di sini
arr.length
akan memberi10
.sumber
`
jadi di sini kami telah membuat sebuah array dengan ruang memori 3 ... ini adalah tampilannya sebenarnya
0th 1st 2nd ...........> Indeks 2 4 5 ...........> Angka
Jadi seperti yang Anda lihat, ukuran array ini adalah 3 tetapi indeks array hanya maksimal 2 karena array apa pun dimulai dengan indeks ke-0.
output pernyataan kedua harus 3 karena panjang array adalah 3 ... Tolong jangan bingung antara nilai indeks dan panjang array ....
Bersulang!
sumber
sumber
Ini akan berisi ukuran sebenarnya dari array karena itulah yang Anda inisialisasi dari array saat Anda mendeklarasikannya. Java tidak memiliki konsep ukuran "logis" dari sebuah larik, sejauh ini menyangkut nilai default 0 sama logisnya dengan nilai yang telah Anda tetapkan secara manual.
sumber
Ini berisi ukuran yang dialokasikan, 10. Indeks yang tersisa akan berisi nilai default yaitu 0.
sumber
Jika Anda menginginkan ukuran logis dari larik, Anda dapat melintasi semua nilai dalam larik dan memeriksanya dengan nol. Tingkatkan nilainya jika bukan nol dan itu akan menjadi ukuran logis. Karena ukuran array tetap, Anda tidak memiliki metode bawaan, mungkin Anda harus melihat koleksi.
sumber
Harus:
Tanda kurung harus dihindari.
sumber
Array Java sebenarnya berukuran tetap, dan jawaban lain menjelaskan bagaimana .length tidak benar-benar melakukan apa yang Anda harapkan. Saya hanya ingin menambahkan bahwa dengan pertanyaan Anda, apa yang mungkin ingin Anda gunakan adalah ArrayList, yaitu array yang dapat tumbuh dan menyusut:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
Di sini metode .size () akan menunjukkan kepada Anda jumlah elemen dalam daftar Anda, dan Anda dapat mengembangkannya saat Anda menambahkan sesuatu.
sumber
jika yang Anda maksud dengan "ukuran logika", indeks dari array, maka cukup int arrayLength = arr.length-1; karena indeks array dimulai dengan "0", maka logika atau "indeks array" akan selalu lebih kecil dari ukuran sebenarnya dengan "satu".
sumber
Array dialokasikan memori pada waktu kompilasi di java, sehingga bersifat statis, elemen yang tidak disetel atau dimodifikasi secara eksplisit disetel dengan nilai default. Anda dapat menggunakan beberapa kode seperti ini, meskipun tidak disarankan karena tidak menghitung nilai default, bahkan jika Anda menginisialisasi secara eksplisit dengan cara itu, kemungkinan juga akan menyebabkan bug di telepon. Seperti yang dikatakan orang lain, saat mencari ukuran sebenarnya, ".length" harus digunakan sebagai pengganti ".length ()".
sumber