1.Arrays.fill()
Nalika nggarap array, programer Java asring kudu ngisi array kanthi nilai sing padha. Sampeyan bisa, mesthi, nulis daur ulang lan mung nemtokake sawetara nilai kanggo saben sel array ing daur ulang:
int[] x = new int[100];
for (int i = 0; i < x.length; i++)
x[i] = 999;
Utawa sampeyan mung bisa nelpon Arrays.fill()
cara, kang nindakake persis padha: ngisi array liwati karo nilai liwati. Mangkene carane katon:
Arrays.fill(name, value)
Lan kode ing conto ing ndhuwur bisa digawe luwih kompak lan luwih cetha:
int[] x = new int[100];
Arrays.fill(x, 999);
Sampeyan uga bisa nggunakake Arrays.fill()
cara kanggo ngisi ora kabeh array, nanging bagean saka iku, karo sawetara nilai:
Arrays.fill(name, first, last, value)
Ing endi pisanan lan pungkasan minangka indeks sel pisanan lan pungkasan sing bakal diisi.
Tuladha:
|
Kita ngisi sel x[3] , x[4] , x[5] , lan x[6] nilai 999 . Sel saka array diwilang saka nol! Variabel str ngandhut nilai:
|
Cara kasebut Arrays.fill()
mung bisa digunakake karo array siji-dimensi. Yen sampeyan ngliwati array rong dimensi menyang metode kasebut, bakal dianggep minangka siji-dimensi, kanthi kabeh akibat sing bakal ditindakake.
2.Arrays.copyOf()
Kaya sing wis dingerteni, sampeyan ora bisa ngowahi ukuran array sawise digawe.
Nanging kepiye yen sampeyan pancene pengin?
Nah, yen sampeyan pengin banget, sampeyan bisa!
- Gawe larik anyar saka dawa sing dikarepake
- Nyalin kabeh unsur saka array pisanan menyang.
Miturut cara, iki cara sing Arrays.copyOf()
ditindakake. Iki sing diarani jenenge:
Type[] name2 = Arrays.copyOf(name, length);
Cara iki ora ngganti array sing wis ana , nanging nggawe array anyar lan nyalin unsur array lawas menyang.
Yen unsur ora pas ( dawa kurang saka dawa array ana ), banjur nilai ekstra ora digatèkaké.
Yen dawa array anyar luwih gedhe tinimbang dawa lawas, sel kasebut diisi nol.
Tuladha:
|
Variabel str2 ngandhut nilai:
Variabel str3 ngandhut nilai:
|
3.Arrays.copyOfRange()
Lan apa yen sampeyan pengin njaluk Uploaded dawa 5 saka Uploaded dawa 10, nanging sampeyan kudu ngemot pungkasan 5 unsur tinimbang pisanan 5?
Ing kasus iki, cara liyane saka Arrays
kelas bakal migunani - ing Arrays.copyOfRange()
. Mangkene apa sing katon nalika diarani:
Type[] name2 = Arrays.copyOfRange(name, first, last);
Cara iki uga nggawe array anyar, nanging isi karo unsur saka panggonan kasepakatan ing Uploaded asli. Ing endi pisanan lan pungkasan minangka indeks saka unsur pisanan lan pungkasan sing kudu dilebokake ing array anyar.
Tuladha:
|
Variabel str2 ngandhut nilai:
Variabel str3 ngandhut nilai:
|
4.Arrays.sort()
Ah, suguhan sing paling enak: ngurutake . Array diurutake cukup asring ing pemrograman. Telung tumindak sing paling umum nalika nggarap array yaiku:
- Ngurutake larik
- Nemokake unsur minimal (utawa maksimum) saka array
- Nemtokake indeks saka unsur ing array (nemokake unsur ing array)
Pramila pangripta Jawi kalebet sort()
metode ing Arrays
kelas. Iki sing diarani jenenge:
Arrays.sort(name);
Cara iki ngurutake array sing dilewati kanthi urutan munggah.
Tuladha:
|
Variabel str ngandhut nilai:
|
Banget, bener? Sampeyan nelpon siji cara, lan saiki sampeyan duwe array sing diurutake. ayu.
Miturut cara, sampeyan bisa nggunakake metode iki kanggo ngurutake ora mung kabeh array, nanging mung bagean. Iki sing diarani jenenge:
Arrays.sort(name, first, last);
Ing endi pisanan lan pungkasan minangka indeks sel pisanan lan pungkasan sing kudu didemek.
Tuladha:
|
Variabel str ngandhut nilai:
|
Kanggo ngurutake array, Jawa nggunakake algoritma pangurutan paling cepet - QuickSort . Kompleksitas komputasi gumantung saka ukuran array lan diwilang nggunakake rumus N log(N).
Ngurutake array saka 1000 unsur bakal melu babagan 3.000 mbandhingake unsur array. Ngurutake array saka siji yuta unsur bakal melu babagan 6 yuta bandingaken.
5.Arrays.binarySearch()
Inggih, lan pungkasan saka cara paling menarik saka Arrays
kelas iku bisa kanggo nelusuri Nilai diwenehi ing Uploaded. Iki dudu telusuran biasa — iku telusuran binar sing ditresnani . Iki dadi:
- Kaping pisanan, array diurutake.
- Banjur unsur tengah array dibandhingake karo sing kita goleki.
- Yen unsur luwih gedhe tinimbang unsur tengah, banjur telusuran terus ing sisih tengen array.
- Yen unsur sing kita goleki kurang saka unsur tengah, mula telusuran diterusake ing sisih kiwa array.
Amarga Uploaded wis diurutake, iku bisa kanggo ngilangke setengah saka iku ing comparison siji. Banjur ing langkah sabanjure, kita mbuwang setengah liyane, lan sateruse.
Pendekatan iki ndadekake panelusuran binar cepet banget. Ing Uploaded siji yuta (!) unsur, iku bisa nemokake indeks saka unsur dikarepake ing mung 20 bandingaken. Kekurangan pendekatan yaiku array kudu diurutake dhisik, lan ngurutake uga butuh wektu.
Iki sing diarani jenenge:
int index = Arrays.binarySearch(name, value);
Where name
is jeneng Uploaded, kang kudu liwati wis diurutake (contone, nggunakake Arrays.sort()
cara). Lan value
minangka unsur sing kita telusuri ing array. Asil bali dening cara punika indeks saka unsur array sing dikarepake .
Tuladha:
|
x yaiku:
4 1 (indeks 0 lan 2 uga bisa ditampa)8 -7 |
Yen larik kasebut ngemot pirang-pirang conto unsur sing digoleki, mula algoritma kasebut mung bakal ngasilake indeks salah sawijining (ora ana jaminan manawa, ujare, sing pertama, utawa kosok balene - sing paling pungkasan. unsur duplikat).
Yen unsur ora ditemokake ing array, indeks kasebut bakal negatif.
6. Link menyang dokumentasi Oracle ing Arrays
kelas
Yen sampeyan kepengin banget, sampeyan bisa maca kabeh babagan Arrays
kelas lan kabeh cara ing dokumentasi resmi a href="https://docs.oracle.com/en/java/javase/14/docs/api/java.base /java/util/Arrays.html">ing situs web Oracle.
Contone, sampeyan bisa maca babagan Arrays.mismatch()
lan Arrays.compare()
cara. Mungkin sampeyan bakal nemokake dheweke migunani.
Lan aja bingung karo jumlah metode. Saben cara duwe 5-10 varian, sing mung beda karo jinis parameter.