hai, bagaimana kita bisa menemukan dokumen yang mencantumkan semua properti dan fungsi yang mungkin dari objek array? Maksud saya bukan objek Array yang merupakan satu-satunya dokumen yang dapat saya temukan.
Juga, mungkin berguna untuk mencatat bahwa jika Anda memiliki Array beberapa dimensi, Anda bisa mendapatkan dimensi masing-masing hanya dengan menambahkan '[0]' ke array yang Anda query sampai Anda tiba pada sumbu / tuple / dimensi yang sesuai.
Ini mungkin lebih baik dijelaskan dengan kode berikut:
publicclassTest{publicstaticvoid main(String[] args){String[][] moo =newString[5][12];System.out.println(moo.length);//Prints the size of the First Dimension in the arraySystem.out.println(moo[0].length);//Prints the size of the Second Dimension in the array}}
Hanya untuk nitpick. Tapi saya percaya array BUKAN objek di Jawa - mereka adalah salah satu dari dua jenis variabel referensi. Yang lainnya adalah objek.
jabbie
2
@ Jabbie: Benarkah? Apakah Anda punya referensi untuk itu? Saya hanya mempertanyakannya karena Anda dapat mengatakan Object o = new String [] {"hello"};
Simon Nickerson
Saya pikir alasan pernyataan itu bekerja adalah karena mereka memperkenalkan kelas refleksif untuk semua tipe primitif.
terima kasih karena tidak membahas masalah teknis tentang apa itu mungkin atau tidak, dan hanya memberikan jawaban singkat dan ringkas. +1 untuk Anda. :)
Ini harus diperbarui dalam pertanyaan jika klarifikasi.
Whitecat
5
Jawabannya adalah "Semuanya". Array java dialokasikan dengan jumlah tetap slot elemen. Atribut "length" akan memberi tahu Anda berapa banyak. Angka itu tidak berubah untuk umur array. Untuk persamaan yang dapat diubah ukurannya, Anda memerlukan salah satu kelas java.util.List - di mana Anda dapat menggunakan metode size () untuk mengetahui berapa banyak elemen yang digunakan.
Namun, ada "Sedang digunakan" dan kemudian Ada Digunakan . Dalam array objek kelas, Anda dapat memiliki slot elemen yang elemennya adalah objek nol, jadi meskipun mereka menghitung dalam atribut panjang, tetapi definisi kebanyakan orang, mereka tidak digunakan (YMMV, tergantung pada aplikasi). Tidak ada fungsi bawaan untuk mengembalikan jumlah null / non-null.
Daftar objek belum memiliki definisi lain "Sedang Digunakan". Untuk menghindari penciptaan / penghancuran yang berlebihan dari struktur penyimpanan yang mendasarinya, biasanya ada beberapa lapisan di kelas-kelas ini. Ini digunakan secara internal, tetapi tidak dihitung dalam metode ukuran yang dikembalikan (). Dan jika Anda mencoba mengakses item-item tersebut tanpa memperluas Daftar (melalui metode add), Anda akan mendapatkan pengecualian indeks ilegal.
Jadi untuk Daftar, Anda dapat memiliki "Dalam Penggunaan" untuk elemen yang tidak nol, berkomitmen, Semua elemen yang berkomitmen (termasuk elemen nol), atau Semua elemen, termasuk ruang ekspansi yang saat ini dialokasikan.
Semua jawaban di atas benar. Yang penting untuk diperhatikan adalah array memiliki atribut panjang tetapi bukan metode panjang. Setiap kali Anda menggunakan string dan array di java tiga model dasar yang mungkin Anda hadapi adalah:
String s = String baru ("vidyasagar");
System.out.println (s.length ()); // Dalam hal ini kami hanya menggunakan String. Tidak ada atribut panjang untuk Strings. kita harus menggunakan metode length ().
int [] s = new int [10]; System.out.println (s.length); // di sini kita menggunakan atribut array panjang.
String [] s = String baru [10];
System.out.println (s.length); // Di sini meskipun tipe data adalah String, itu bukan String tunggal. s adalah referensi untuk berbagai string. Jadi kami menggunakan atribut panjang array untuk menyatakan berapa banyak string yang bisa masuk dalam array itu.
Tidak benar-benar jawaban untuk pertanyaan Anda, tetapi jika Anda ingin memiliki sesuatu seperti array yang dapat tumbuh dan menyusut Anda sebaiknya tidak menggunakan array di java. Anda mungkin lebih baik menggunakan ArrayList atau implementasi Daftar lainnya.
Anda kemudian dapat memanggil size () di atasnya untuk mendapatkan ukurannya.
Jawaban:
Ya,
.length
(seperti properti, bukan metode):sumber
Ini sebenarnya adalah anggota terakhir dari array, bukan metode.
sumber
Juga, mungkin berguna untuk mencatat bahwa jika Anda memiliki Array beberapa dimensi, Anda bisa mendapatkan dimensi masing-masing hanya dengan menambahkan '[0]' ke array yang Anda query sampai Anda tiba pada sumbu / tuple / dimensi yang sesuai.
Ini mungkin lebih baik dijelaskan dengan kode berikut:
Yang menghasilkan output:
sumber
properti akhir array.length
itu adalah milik umum dan final. Ini final karena array di Jawa tidak dapat diubah berdasarkan ukuran (tetapi dapat diubah oleh nilai elemen)
sumber
Array adalah objek dan bidangnya panjang.
String [] haha = {"olle", "bulle"};
haha. Panjangnya akan 2
sumber
Di java ada
length
bidang yang bisa Anda gunakan pada array apa pun untuk mengetahui ukurannya:sumber
Jika Anda ingin fungsi melakukan ini
Ini bisa berguna jika Anda tidak tahu apa jenis array yang Anda miliki misalnya int [], byte [] atau Object [].
sumber
Ada perbedaan antara panjang
String
danarray
untuk memperjelas:sumber
Jawabannya adalah "Semuanya". Array java dialokasikan dengan jumlah tetap slot elemen. Atribut "length" akan memberi tahu Anda berapa banyak. Angka itu tidak berubah untuk umur array. Untuk persamaan yang dapat diubah ukurannya, Anda memerlukan salah satu kelas java.util.List - di mana Anda dapat menggunakan metode size () untuk mengetahui berapa banyak elemen yang digunakan.
Namun, ada "Sedang digunakan" dan kemudian Ada Digunakan . Dalam array objek kelas, Anda dapat memiliki slot elemen yang elemennya adalah objek nol, jadi meskipun mereka menghitung dalam atribut panjang, tetapi definisi kebanyakan orang, mereka tidak digunakan (YMMV, tergantung pada aplikasi). Tidak ada fungsi bawaan untuk mengembalikan jumlah null / non-null.
Daftar objek belum memiliki definisi lain "Sedang Digunakan". Untuk menghindari penciptaan / penghancuran yang berlebihan dari struktur penyimpanan yang mendasarinya, biasanya ada beberapa lapisan di kelas-kelas ini. Ini digunakan secara internal, tetapi tidak dihitung dalam metode ukuran yang dikembalikan (). Dan jika Anda mencoba mengakses item-item tersebut tanpa memperluas Daftar (melalui metode add), Anda akan mendapatkan pengecualian indeks ilegal.
Jadi untuk Daftar, Anda dapat memiliki "Dalam Penggunaan" untuk elemen yang tidak nol, berkomitmen, Semua elemen yang berkomitmen (termasuk elemen nol), atau Semua elemen, termasuk ruang ekspansi yang saat ini dialokasikan.
sumber
Semua jawaban di atas benar. Yang penting untuk diperhatikan adalah array memiliki atribut panjang tetapi bukan metode panjang. Setiap kali Anda menggunakan string dan array di java tiga model dasar yang mungkin Anda hadapi adalah:
System.out.println (s.length ()); // Dalam hal ini kami hanya menggunakan String. Tidak ada atribut panjang untuk Strings. kita harus menggunakan metode length ().
System.out.println (s.length); // Di sini meskipun tipe data adalah String, itu bukan String tunggal. s adalah referensi untuk berbagai string. Jadi kami menggunakan atribut panjang array untuk menyatakan berapa banyak string yang bisa masuk dalam array itu.
sumber
Tidak benar-benar jawaban untuk pertanyaan Anda, tetapi jika Anda ingin memiliki sesuatu seperti array yang dapat tumbuh dan menyusut Anda sebaiknya tidak menggunakan array di java. Anda mungkin lebih baik menggunakan ArrayList atau implementasi Daftar lainnya.
Anda kemudian dapat memanggil size () di atasnya untuk mendapatkan ukurannya.
sumber