1. Arrayskelas

Kaya sing wis dingerteni sadurunge, array minangka alat sing migunani lan asring digunakake ing program.

Pencipta Jawa cepet banget ngerteni manawa programer Jawa kerep nulis kode sing padha nalika nggarap array. Contone, nyalin bagean array menyang array liyane, kode kanggo ngisi saben sel array kanthi nilai sing padha, nampilake isi array ing format sing trep, lsp.

Mulane dheweke nggawe Arrayskelas khusus (jeneng lengkape java.util.Arrays), nglebokake tumindak sing gegandhengan karo array sing paling populer.

Wis akeh cara kanggo saben kesempatan, nanging pisanan kita bakal nimbang mung 10 saka wong-wong mau - sing paling gampang lan paling asring digunakake.


2.Arrays.toString()

Cara pisanan sing bakal kita deleng diarani Arrays.toString(). Nanging pisanan, latar mburi sethitik.

Saben array ing Jawa nduweni toString()metode, sing ngasilake 'representasi teks saka array'. Sampeyan bisa entuk representasi teks saka array nggunakake statement ing ngisor iki:

String str = name.toString();

Endi namejeneng variabel array, lan strjeneng variabel sing bakal nyimpen perwakilan string saka array.

Nanging yen sampeyan nyoba nyithak array menyang layar kanthi nggunakake metode kasebut, sampeyan bakal bisa ndeleng kaya iki:System.out.println(name)

I@37afeb11

Huruf pisanan Itegese iku intarray, lan simbol sawise @iku alamat Uploaded ing memori. Ing tangan siji, iki persis informasi sing disimpen ing variabel array, nanging ing sisih liyane, kita ngarepake sing beda, ta?

Kita pengin ndeleng nilai ing array! Lan mulane dheweke nggawe Arrays.toString()metode - kanggo nampilake nilai array. Kita nelpon kaya iki:

String str = Arrays.toString(name);

Tuladha:

int[] array = {1, 2, 3};
String str = Arrays.toString(array);
Variabel strbakal ngemot string:
"[1, 2, 3]"
int[] array = {};
String str = Arrays.toString(array);
Variabel strbakal ngemot string:
"[]"
String[] array = {"Hi", "How's", "life?"};
String str = Arrays.toString(array);
Variabel strbakal ngemot string:
"[Hi, How's, life?]"


3.Arrays.deepToString()

Nanging yen sampeyan nyoba ngonversi array rong dimensi menyang metode string (kanggo nampilake) using the Arrays.toString(), sampeyan bakal weruh sing akrab:

[I@37afeb11, I@37afeb21, I@37afeb31]

Iki kabeh amarga sel saka array loro-dimensi nyimpen referensi kanggo array siji-dimensi. Lan carane array siji-dimensi diowahi dadi senar? Persis kaya sing sampeyan deleng ing ndhuwur.

Apa sing bisa ditindakake? Kepiye carane nampilake array rong dimensi kanthi bener?

Kanggo iki pungkasan, Arrayskelas wis cara khusus liyane - deepToString(). Telpon katon kaya iki:

String str = Arrays.deepToString(name);

Cara iki bisa liwat array sing loro-dimensi, siji-dimensi, telung dimensi utawa, ing umum, sembarang dimensi, lan bakal tansah nampilake unsur Uploaded.
Cathetan: cara Arrays.deepToString()ora bisa digunakake karo susunan primitif siji-dimensi (contone, int[]).

Tuladha:

Integer[] array = {1, 2, 3};
String str = Arrays.deepToString(array);
Variabel strbakal ngemot string:
"[1, 2, 3]"
int[][] array = { {1, 1}, {2, 2}, {3, 3} };
String str = Arrays.deepToString(array);
Variabel strbakal ngemot string:
"[[1, 1], [2, 2], [3, 3]]"
int[][][] array = { {{1, 2, 3}, {1}}, {{}} };
String str = Arrays.deepToString(array);
Variabel strbakal ngemot string:
"[[[1, 2, 3], [1]], [[]]]"


4.Arrays.equals()

Kita ngerti carane nampilake array ing layar, nanging apa babagan mbandhingake array?

Kanggo mbandhingaké strings, kita duwe equalslan equalsIgnoreCasecara, nanging cara apa array duwe?

Kabar apik yaiku array duwe equalsmetode. Kabar ala iku ora mbandhingake isi array. Cara equalsarray nindakake perkara sing padha karo ==operator - mbandhingake referensi. Tuladha:

Tuladha:

int[] x1 = {1, 2, 3};
int[] x2 = {1, 2, 3};
boolean b = x1 == x2;


false(Referensi ora padha)
int[] x1 = {1, 2, 3};
int[] x2 = {1, 2, 3};
x1.equals(x2);
Cara equalsmung arraysmbandhingake referensi saka rong array.

false(Referensi ora padha)

Apa sing bisa ditindakake? Kepiye carane mbandhingake array adhedhasar isine?

Lan maneh Arraysteka kanggo ngluwari kita, utawa luwih khusus, Arrays.equals()cara. Iki carane kita nelpon:

Arrays.equals(name1, name2)

Cara kasebut bali trueyen array padha dawa lan unsur-unsur padha. Yen ora, bali false.

Tuladha:

int[] x1 = {1, 2, 3};
int[] x2 = {1, 2, 3};
x1.equals(x2);
Cara equalsmung arrays mbandhingake referensi saka rong array.

false(Referensi ora padha)
int[] x1 = {1, 2, 3};
int[] x2 = {1, 2, 3};
Arrays.equals(x1, x2);


true(isine padha)
int[] x1 = {1, 2, 3};
int[] x2 = {1, 2, 3, 4};
Arrays.equals(x1, x2);


false(isi array beda-beda)

5.Arrays.deepEquals()

Lan, kaya sing wis sampeyan duga, Arrays.equalscara kasebut ora bakal bisa digunakake kanthi bener kanggo array rong dimensi: nganggep array rong dimensi kaya array siji dimensi sing unsur alamat saka array siji dimensi.

Mangkono, kanggo mbandhingake array multidimensional kanthi bener ( n = 1, 2, 3,...), padha teka karo Arrays.deepEquals()metode kasebut. Telpon katon kaya iki:

Arrays.deepEquals(name1, name2)

Cara balitrueyen larik padha dawa lan unsur padha. Yen ora, balifalse. Yen unsur ing jero array uga array, banjur Arrays.deepEquals()cara digunakake kanggo mbandhingake, lan liya-liyane.

Tuladha:

int[][] x1 = {{1, 2, 3}, {4, 5, 6}};
int[][] x2 = {{1, 2, 3}, {4, 5, 6}};
x1.equals(x2);
Cara equalsmung arrays mbandhingake referensi saka rong array.

false(Referensi ora padha)
int[][] x1 = {{1, 2, 3}, {4, 5, 6}};
int[][] x2 = {{1, 2, 3}, {4, 5, 6}};
Arrays.equals(x1, x2);
Cara kasebut Arrays.equalsbakal mbandhingake lan minangka array siji-dimensi sing nyimpen referensi. Padha ngemot referensi beda. (isi array ora padha) x1x2
false
int[][] x1 = {{1, 2, 3}, {4, 5, 6}};
int[][] x2 = {{1, 2, 3}, {4, 5, 6}};
Arrays.deepEquals(x1, x2);


true(isine padha)