1. String
larik
Saya ingin memberi Anda gambaran singkat tentang String
array.
Seperti yang kami katakan sebelumnya, sebuah array bisa bertipe apa saja. Ini berarti Anda dapat membuat array String
s. Jika kita ingin menulis sebuah program yang "membaca 10 baris dari keyboard dan menampilkannya dalam urutan terbalik", berikut tampilan kodenya:
|
Membuat Scanner objek Membuat objek array 10 elemen Loop dari 0 hingga 9 Membaca string dari keyboard dan menyimpannya di sel berikutnya dari array Loop dari 9 ke 0 Menampilkan sel berikutnya dalam array |
Kode hampir tidak berubah! Kami hanya perlu mengganti int
dengan String
saat membuat array. Nah, dan saat membaca string dari keyboard, kami juga mengganti metodenya nextInt()
dengan nextLine()
.
2. String
larik dalam memori
Dan satu lagi fakta yang bermanfaat. Mari kita perhatikan 3 gambar:
Gambar 1. Bagaimana suatu String
objek disusun dalam memori:
Gambar ini diambil dari pelajaran sebelumnya.
Harap perhatikan bahwa teks string tidak disimpan langsung dalam variabel: blok memori terpisah dialokasikan untuknya. Variabel String
menyimpan alamat (referensi) ke objek yang menyimpan teks.
Gambar 2. Bagaimana array integer disusun dalam memori:
Gambar ini juga akrab.
Gambar 3. Bagaimana susunan string array di dalam memori:
Di sebelah kiri kita melihat variabel array yang bertipe String[]
(menyimpan alamat objek array).
Di tengah, kita memiliki String
objek array itu sendiri.
Dan di sebelah kanan adalah objek string yang menyimpan beberapa teks.
Sel-sel array String
tidak menyimpan string itu sendiri (teks dari objek String). Sebaliknya, mereka menyimpan alamat mereka (referensi ke mereka). Dengan cara yang sama String
variabel menyimpan alamat objek string (tempat teks disimpan).
Pertimbangkan ini saat Anda membandingkan sel array:
|
Buat array 10 string Masukkan nilai ke dalam array false (referensinya sama) false (referensinya tidak sama)true (stringnya sama) true (stringnya masih sama) |
3. Inisialisasi larik cepat di Jawa
Array sangat berguna, jadi pembuat Java mencoba membuatnya senyaman mungkin.
Hal pertama yang mereka lakukan adalah menyederhanakan inisialisasi larik, proses di mana Anda memberikan nilai awal larik.
Lagipula, selain data yang dibaca dari suatu tempat, sebuah program juga cukup sering membutuhkan data internalnya sendiri agar bisa bekerja. Misalnya, kita perlu menyimpan panjang setiap bulan dalam sebuah array. Seperti inilah tampilan kodenya:
int[] months = new int[12];
months[0] = 31; // January
months[1] = 28; // February
months[2] = 31; // March
months[3] = 30; // April
months[4] = 31; // May
months[5] = 30; // June
months[6] = 31; // July
months[7] = 31; // August
months[8] = 30; // September
months[9] = 31; // October
months[10] = 30; // November
months[11] = 31; // December
Namun terima kasih kepada pembuat Java, ada cara untuk menulis ini dengan lebih ringkas:
// Lengths of months of the year
int[] months = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Anda cukup mencantumkan semua nilai array, dipisahkan dengan koma!
Nyaman, bukan? Tapi itu belum semuanya.
Seperti yang terjadi, compiler dapat menentukan tipe container (objek array) berdasarkan tipe nilai array. Dan untuk menentukan panjang array, sangat mudah untuk menghitung jumlah elemen yang ditulis dalam kurung kurawal.
Itu berarti kode ini dapat ditulis lebih pendek:
// Lengths of months of the year
int[] months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
Suatu hal yang indah, bukan? 🙂
Ini disebut "inisialisasi larik cepat". Omong-omong, ini berfungsi untuk jenis selain int
...
// Names of months of the year
String[] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November ", "December"};
GO TO FULL VERSION