Isonjululwe: khuphela uluhlu kwi-java 2d

Uhlaziyo lokugqibela: 06/19/2023

khuphela uluhlu kwi-2d Ukuguqulwa koluhlu luyingcamango esisiseko kucwangciso, kwaye kwinqaku lanamhlanje, siza kugxila ku **kukopa uluhlu lwe-2D** kwiJava. Siza kuphonononga ukuntsonkotha kwalo mbandela kwaye sibonelele nzulu kwiindlela zokwenza izinto kunye nobuchule obubandakanyekayo. Eyona ndlela ilula yokuphinda-phinda uluhlu lwe-2D kukudala uluhlu olutsha kunye nokuphindaphinda kweyoqobo. Nangona kunjalo, le nkqubo ayisoloko ilula njengoko ibonakala. Kweli nqaku, siza kujongana noluhlu lwekopi kwingxaki ye-2D, sixoxe ngamathala eencwadi afanelekileyo okanye imisebenzi, kwaye sinikeze isikhokelo esibanzi sokufunda uluhlu lwe-2D kunye nokuphatha kwabo kwiJava.

Isisombululo kwingxaki yokukhuphela uluhlu lwe-2D alululanga njengokukhuphela uluhlu lwe-1D kuba ukukhuphela ngokulula iireferensi kuluhlu lwangaphakathi akuyi kudala iikopi ezinzulu ze-subarrays ngokwazo. Kukho iindlela ezininzi zokusombulula le ngxaki, kwaye siza kuxubusha enye indlela enjalo ngokweenkcukacha, ukuvavanywa kwenyathelo ngenyathelo lekhowudi, kunye nokuphunyezwa kwayo.

Okokuqala, masenze umsebenzi okhuphela uluhlu lwe-2D:

public static int[][] copy2DArray(int[][] original) {
int[][] ikopi = entsha int[original.length][];
kuba (int i = 0; i < original.length; i++) {ikopi[i] = Arrays.copyOf(original[i], original[i].ubude); } buyisela ikopi; } [/ikhowudi] Kwikhowudi engentla, siqala ngokuchaza umsebenzi othi `copy2DArray` ethatha uluhlu olupheleleyo lwe-2D, ebizwa **yoqobo**, njenge parameter. Emva kokuchaza umsebenzi, emva koko senza uluhlu olutsha lwe-2D, ebizwa ngokuthi ** ikopi **, enobude obufanayo noluhlu lokuqala. Emva koko sisebenzise i-loop ukuphinda-phinda ngapha kweziqalelo zoluhlu loqobo kwaye sizikhuphele kuluhlu olutsha sisebenzisa indlela `Arrays.copyOf()` esuka kwithala leencwadi `java.util.Arrays`. Le ndlela yenza ikopi enzulu ye-subarrays. Ekugqibeleni, sibuyisela ikopi ye-2D uluhlu.

Ukuqonda i-2D Arrays

KwiJava, i-*2D uluhlu** luludwe loluhlu. Inokubonwa njengetafile enemiqolo kunye neentsika. Izinto zinokufumaneka ngokusebenzisa i-indices ezimbini: enye yomqolo, kunye nenye yekholomu. Xa usebenza ngoluhlu lwe-2D kwiJava, kubalulekile ukugcina umkhondo wazo zombini izalathi, ukuze ube nokufikelela ngokuchanekileyo kwaye ulawule idatha.

  • Uluhlu lwe-2D lwenziwa kusetyenziswa le syntax ilandelayo:
    `dataType[][] arrayName = dataType entsha[rowSize][columnSize];`
  • Izinto ezikuluhlu lwe-2D zinokufikelelwa ngezalathisi ezimbini: `arrayName[umqolo][kholamu];`
  • Ukuphindaphinda ngoluhlu lwe-2D lubandakanya iilophu ezinendlwana.

Ngaphambi kokuba ungene ngaphakathi khuphela uluhlu kwi-2D, kubalulekile ukuqonda ukuba kutheni kubalulekile ukwenza iikopi ezinzulu ze-subarrays. Ikopi enganzulwanga ingakhuphela kuphela iimbekiselo kumaziko angaphantsi, kwaye naluphi na utshintsho olwenziwayo koluqobo luya kuchaphazela ikopi. Ngokwenza iikopi ezinzulu, siqinisekisa ukuba utshintsho kuluhlu olunye aluchaphazeli enye.

Java.util.Arrays Library

Kwisisombululo sethu, sisebenzise ithala leencwadi elithi `java.util.Arrays`, elibonelela ngeendlela eziluncedo eziluncedo ekusebenzeni ngoluhlu. Kwingxaki ethile yokukhuphela uluhlu lwe-2D, sisebenzise indlela `Arrays.copyOf()` ukwenza iikopi ezinzulu zeziseko zoncedo.

  • Indlela ethi `Arrays.copyOf()` yenza ikopi enzulu yoluhlu loqobo. Ithatha iiparameters ezimbini: uluhlu lwangaphambili kunye nobude boluhlu olutsha.
  • Ezinye iindlela eziluncedo kweli thala leencwadi ziquka `IiArrays.fill()`, `IArrays.sort()`, kunye `Arrays.binarySearch()`.

Ukuqukumbela, ukukopa uluhlu lwe-2D kwiJava kufuna ikopi enzulu ukuthintela utshintsho kuluhlu lwentsusa ekubeni luchaphazele ikopi. Sibonise isisombululo sisebenzisa indlela `Arrays.copyOf()` esuka kwithala leencwadi `java.util.Arrays`, kwaye umsebenzi owenziweyo uyasebenza kwaye kulula ukuyiqonda. Ngokuqonda kwethu okunzulu kwee-arrays ze-2D, ilayibrari yeJava.util.Arrays, kunye nokuguqulwa koluhlu, ngoku sinokujongana neminye imingeni ngokuzithemba okukhulu kunye nezisombululo ezomeleleyo kwiJava.

Izithuba ezihambelanayo: