1. Arrays
kelas
Seperti yang kami catat sebelumnya, array sangat berguna dan sering digunakan dalam pemrograman.
Pembuat Java dengan sangat cepat menyadari bahwa pemrogram Java sering menulis kode yang sama saat bekerja dengan array. Misalnya, menyalin bagian dari larik ke larik lain, kode untuk mengisi setiap sel larik dengan nilai yang sama, menampilkan konten larik dalam format yang nyaman, dll.
Itu sebabnya mereka membuat Arrays
kelas khusus (nama lengkapnya adalah java.util.Arrays
), memasukkan tindakan terkait array yang paling populer ke dalamnya.
Ini memiliki banyak metode untuk setiap kesempatan, tetapi pertama-tama kita akan mempertimbangkan hanya 10 di antaranya — yang paling sederhana dan paling sering digunakan.
2.Arrays.toString()
Metode pertama yang akan kita lihat disebut Arrays.toString()
. Tapi pertama-tama, sedikit latar belakang.
Setiap larik di Java memiliki toString()
metode, yang mengembalikan 'representasi tekstual dari larik'. Anda bisa mendapatkan representasi tekstual dari sebuah array menggunakan pernyataan berikut:
String str = name.toString();
Di mana name
nama variabel array, dan str
nama variabel yang akan menyimpan representasi string dari array.
Tetapi jika Anda mencoba mencetak larik ke layar menggunakan metode ini, kemungkinan besar Anda akan melihat sesuatu seperti ini:System.out.println(name)
I@37afeb11
Huruf pertama I
berarti array int
, dan simbol setelahnya @
adalah alamat array di memori. Di satu sisi, ini justru informasi yang disimpan dalam variabel array, tetapi di sisi lain, kami mengharapkan sesuatu yang berbeda, bukan?
Kami ingin melihat nilai dalam array! Dan itulah mengapa mereka menemukan metode Arrays.toString()
— untuk menampilkan nilai array. Kami menyebutnya seperti ini:
String str = Arrays.toString(name);
Contoh:
|
Variabel str akan berisi string:
|
|
Variabel str akan berisi string:
|
|
Variabel str akan berisi string:
|
3.Arrays.deepToString()
Tetapi jika Anda mencoba mengonversi array dua dimensi menjadi metode string (untuk menampilkannya) using the Arrays.toString()
, Anda akan melihat sesuatu yang familier:
[I@37afeb11, I@37afeb21, I@37afeb31]
Ini semua karena sel-sel dari array dua dimensi menyimpan referensi ke array satu dimensi. Dan bagaimana array satu dimensi diubah menjadi string? Persis seperti yang Anda lihat di atas.
Apa yang bisa dilakukan? Bagaimana kita menampilkan array dua dimensi dengan benar?
Untuk tujuan ini, Arrays
kelas memiliki metode khusus lainnya — deepToString()
. Memanggilnya terlihat seperti ini:
String str = Arrays.deepToString(name);
Metode ini dapat melewatkan array dua dimensi, satu dimensi, tiga dimensi atau, secara umum, dimensi apa pun, dan itu akan selalu menampilkan elemen array.
Catatan: metode ini Arrays.deepToString()
tidak bekerja dengan array primitif satu dimensi (misalnya, int[]
).
Contoh:
|
Variabel str akan berisi string:
|
|
Variabel str akan berisi string:
|
|
Variabel str akan berisi string:
|
4.Arrays.equals()
Kami menemukan cara menampilkan array di layar, tetapi bagaimana dengan membandingkan array?
Untuk membandingkan string, kita memiliki equals
dan equalsIgnoreCase
metode, tetapi metode apa yang dimiliki array?
Kabar baiknya adalah array memiliki equals
metode. Berita buruknya adalah tidak membandingkan isi dari array. Metode equals
array melakukan hal yang sama seperti ==
operator — membandingkan referensi. Contoh:
Contoh:
|
false (referensi tidak sama) |
|
Metode equals hanya arrays membandingkan referensi dari dua array. false (referensi tidak sama) |
Apa yang bisa dilakukan? Bagaimana kita membandingkan array berdasarkan isinya?
Dan lagi Arrays
datang untuk menyelamatkan kita, atau lebih tepatnya, metodenya Arrays.equals()
. Inilah cara kami menyebutnya:
Arrays.equals(name1, name2)
Metode kembali true
jika array memiliki panjang yang sama dan elemennya sama. Jika tidak, ia mengembalikan false
.
Contoh:
|
Metode equals hanya arrays membandingkan referensi dari dua array. false (referensi tidak sama) |
|
true (isinya sama) |
|
false (isi array berbeda) |
5.Arrays.deepEquals()
Dan, seperti yang mungkin sudah Anda duga, Arrays.equals
metode ini tidak akan bekerja dengan benar untuk larik dua dimensi: ia memperlakukan larik dua dimensi seperti larik satu dimensi yang elemennya adalah alamat larik satu dimensi.
Jadi, untuk membandingkan array multidimensi ( n = 1, 2, 3,...
) dengan benar, mereka menemukan metodenya Arrays.deepEquals()
. Memanggilnya terlihat seperti ini:
Arrays.deepEquals(name1, name2)
Metode kembalitrue
jika array memiliki panjang yang sama dan elemennya sama. Jika tidak, itu kembalifalse
. Jika elemen di dalam array juga merupakan array, maka Arrays.deepEquals()
metode ini digunakan untuk membandingkannya, dan seterusnya.
Contoh:
|
Metode equals hanya arrays membandingkan referensi dari dua array. false (referensi tidak sama) |
|
Metode ini Arrays.equals akan membandingkan dan sebagai array satu dimensi yang menyimpan referensi. Mereka mengandung referensi yang berbeda. (isi array tidak sama) x1 x2 false |
|
true (isinya sama) |
GO TO FULL VERSION