Pertimbangkan pertanyaan berikut sebelum memulai artikel ini
Bagaimana cara mendapatkan panjang array tanpa menggunakan IDE dengan fungsi lengkap? Dan, bagaimana cara mendapatkan panjang string?
Saya telah bertanya kepada programmer dari berbagai tingkat, termasuk tingkat junior dan menengah. Tak satu pun dari mereka yang dapat menjawab pertanyaan ini secara akurat dan percaya diri (jika Anda dapat menjawab pertanyaan ini secara akurat dan percaya diri, itu membuktikan bahwa Anda lebih baik dalam pengetahuan ini daripada kebanyakan pemrogram perantara). Karena banyak IDE sekarang memiliki fungsi penyelesaian kode, pengembang dapat memahami banyak masalah dengan sangat dangkal.
Jawaban yang benar untuk pertanyaan di atas harus sebagai berikut:
int [] arr = int new [3]; System.out.println (arr.length); // Gunakan panjang untuk mendapatkan derajat string array str = "abc"; System.out.println (str.length ()); // gunakan panjang () untuk mendapatkan panjang string tersebut
Jadi pertanyaannya adalah, mengapa array memiliki atribut panjang tetapi string tidak? Atau, mengapa string memiliki metode length() , tetapi array tidak?
Mengapa array memiliki atribut panjang?
Pertama, array adalah objek kontainer yang berisi sejumlah nilai dari jenis yang sama. Setelah array dibuat, panjangnya diperbaiki. Panjang array dapat digunakan sebagai panjang variabel instance akhir. Oleh karena itu, panjangnya dapat dianggap sebagai atribut array.
Ada dua cara untuk membuat array:
1. Buat array melalui ekspresi array.
2. Buat array dengan menginisialisasi nilai.
Either way, setelah array dibuat, ukurannya diperbaiki.
Metode membuat array menggunakan ekspresi adalah sebagai berikut, yang menentukan jenis elemen, dimensi array, dan panjang array setidaknya satu dimensi.
Metode deklarasi ini memenuhi persyaratan karena menentukan panjang dimensi (array memiliki tipe int, dimensi adalah 2, dan dimensi pertama adalah 3)
int [] [] arr = new int [3] [];
Saat membuat array menggunakan inisialisasi array, Anda perlu memberikan semua nilai awal. Formulirnya adalah menggunakan {dan} untuk melampirkan semua nilai awal bersama -sama dan memisahkannya.
int [] arr = {1,2,3};Catatan:
Mungkin ada pertanyaan di sini. Karena ukuran array ditentukan saat diinisialisasi, int[][] arr = new int[3][];定array tanpa memberikan ukuran dimensi kedua array. Jadi bagaimana panjang ARR ini "didefinisikan"?
Faktanya, panjang ARR adalah 3. Faktanya, semua array di Java, tidak peduli berapa banyak dimensi, sebenarnya adalah array satu dimensi. Misalnya, ARR, 3 ruang dialokasikan, setiap ruang menyimpan alamat array satu dimensi, yang menjadi array "dua dimensi". Tetapi untuk ARR, panjangnya adalah 3.
int [] [] a = int int [3] []; System.out.println (a.length); // 3int [] [] b = int baru [3] [5]; System.out.println (b.length); // 3
Mengapa tidak ada kelas array seperti string yang ditentukan dalam java
Karena array juga merupakan objek, kode berikut juga legal:
Objek obj = int baru [10];
Array berisi semua metode yang diwarisi dari objek (hubungan warisan array di java), kecuali clone (). Mengapa tidak ada kelas array? Tidak ada file array.java di java. Penjelasan sederhana adalah bahwa itu tersembunyi (Catatan: Array di Java sedikit mirip dengan tipe data dasar, mereka adalah tipe bawaan, dan tidak ada kelas aktual yang sesuai dengannya). Anda dapat memikirkan pertanyaan ini - jika ada kelas array, seperti apa? Masih membutuhkan array untuk menyimpan semua elemen array, bukan? Oleh karena itu, bukan ide yang baik untuk mendefinisikan kelas array. (Catatan Penerjemah: Ini mungkin sedikit membingungkan, alasannya sedikit mirip dengan: Masalah ayam yang dilahirkan dengan telur dan ayam, dan metafora mungkin tidak terlalu tepat, tolong pahami sendiri)
Bahkan, kita dapat memperoleh definisi kelas array, melalui kode berikut:
int [] arr = new int [3]; System.out.println (arr.getClass ());
Keluaran:
Kelas [i
"Kelas [i" mewakili tanda tangan jenis runtime dari objek kelas yang tipe anggotanya adalah array int "
Mengapa string memiliki metode panjang ()?
Struktur data di belakang string adalah array char, jadi tidak perlu mendefinisikan properti yang tidak perlu (karena properti sudah disediakan dalam nilai char). Tidak seperti C, array char di java tidak sama dengan string, meskipun mekanisme internal string diimplementasikan oleh array char. (Catatan: Dalam bahasa C, tidak ada kelas string, dan string yang menentukan biasanya menggunakan bentuk char string[6] = "hollis"; )
Catatan: Ada cara -cara berikut untuk mengubah char [] menjadi string:
char [] s = {'a', 'b', 'c'}; string string1 = s.toString (); string string2 = string baru (s); string string3 = string.valueof (s);Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini akan membantu semua orang dalam belajar atau menggunakan Java. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.