how pass return an array java
V tomto výučbe sa dozviete, ako zadať pole ako argument metódy a ako návratovú hodnotu metódy v jazyku Java, s príkladmi:
V Jave sa používajú metódy alebo funkcie na rozdelenie programu na menšie moduly. Tieto metódy sa volajú z iných funkcií a údaje sa pritom prenášajú do a z týchto metód do volajúcich funkcií.
Údaje odovzdávané z volajúcej funkcie do volanej funkcie sú vo forme argumentov alebo parametrov k funkcii. Dáta vrátené z funkcie sú návratovou hodnotou.
slobodný softvér na kopírovanie DVD na MP4
=> Tu nájdete A-Z výučbových kurzov Java.
Zvyčajne je možné do funkcie odovzdať a vrátiť všetky primitívne a odvodené typy. Rovnako môžu byť do metódy odovzdané a vrátené z metódy aj polia.
V tomto tutoriáli si ukážeme, ako odovzdať polia ako argument metóde a vrátiť pole z metódy.
Čo sa dozviete:
- Postupovanie metód v prostredí Java
- Ako vrátiť pole v Jave
- často kladené otázky
- Záver
- Odporúčané čítanie
Postupovanie metód v prostredí Java
Polia sa dajú prenášať do iných metód, rovnako ako pri odovzdávaní argumentov primitívneho údajového typu. Ak chcete odovzdať pole ako argument metóde, stačí zadať názov poľa bez hranatých zátvoriek. Prototyp metódy by sa mal zhodovať, aby prijal argument typu poľa.
Ďalej je uvedený prototyp metódy:
void method_name (int () array);
To znamená, že method_name bude akceptovať parameter poľa typu int. Takže ak máte int pole s názvom myarray, tak vyššie uvedenú metódu môžete zavolať nasledovne:
method_name (myarray);
Vyššie uvedené volanie odovzdáva odkaz na pole myarray metóde „method_name“. Takže zmeny vykonané v myarray vnútri metódy sa prejavia aj vo volacej metóde.
Na rozdiel od C / C ++ nemusíte do metódy odovzdávať parameter dĺžky spolu s poľom, pretože všetky polia Java majú vlastnosť „dĺžka“. Možno by však bolo vhodné odovzdať niekoľko prvkov v prípade, že je v poli vyplnených iba niekoľko pozícií.
Nasledujúci program Java demonštruje odovzdanie poľa ako parametra funkcii.
public class Main { //method to print an array, taking array as an argument private static void printArray(Integer() intArray){ System.out.println('Array contents printed through method:'); //print individual elements of array using enhanced for loop for(Integer val: intArray) System.out.print(val + ' '); } public static void main(String() args) { //integer array Integer() intArray = {10,20,30,40,50,60,70,80}; //call printArray method by passing intArray as an argument printArray(intArray); } }
Výkon:
Vo vyššie uvedenom programe je pole inicializované v hlavnej funkcii. Potom sa zavolá metóda printArray, ktorej sa toto pole odovzdá ako argument. V metóde printArray sa po poli prechádza a každý prvok sa tlačí pomocou vylepšenej slučky for.
Zoberme si ďalší príklad odovzdávania polí metódam. V tomto príklade sme implementovali dve triedy. Jedna trieda obsahuje volaciu metódu main, zatiaľ čo druhá trieda obsahuje metódu na vyhľadanie maximálneho prvku v poli.
Hlavná metóda teda volá metódu v inej triede odovzdaním poľa tejto metóde find_max. Metóda find_max vypočíta maximálny prvok vstupného poľa a vráti ho do volajúcej funkcie.
class maxClass{ public int find_max(int () myarray) { int max_val = 0; //traverse the array to compare each element with max_val for(int i=0; imax_val) { max_val = myarray(i); } } //return max_val return max_val; } } public class Main { public static void main(String args()) { //input array int() myArray = {43,54,23,65,78,85,88,92,10}; System.out.println('Input Array:' + Arrays.toString(myArray)); //create object of class which has method to find maximum maxClassobj = new maxClass(); //pass input array to find_max method that returns maximum element System.out.println('Maximum value in the given array is::'+obj.find_max(myArray)); } }
Výkon:
Vo vyššie uvedenom programe sme odovzdali pole z jednej metódy v jednej triede do druhej metódy prítomnej v inej triede. Všimnite si, že prístup k odovzdávaniu poľa je rovnaký, či je metóda v rovnakej triede alebo inej triede.
Ako vrátiť pole v Jave
Okrem všetkých primitívnych typov, ktoré môžete vrátiť z programov Java, môžete vrátiť aj odkazy na polia.
Pri vracaní odkazu na pole z metódy by ste mali mať na pamäti, že:
- Údajový typ, ktorý vracia hodnotu, by mal byť zadaný ako pole príslušného údajového typu.
- Vrátená hodnota z metódy je odkaz na pole.
Pole sa vracia z metódy v prípadoch, keď potrebujete z metódy vrátiť viac hodnôt rovnakého typu. Tento prístup je užitočný, pretože Java neumožňuje vrátenie viacerých hodnôt.
Nasledujúci program vráti reťazcové pole z metódy.
import java.util.*; public class Main { public static String() return_Array() { //define string array String() ret_Array = {'Java', 'C++', 'Python', 'Ruby', 'C'}; //return string array return ret_Array; } public static void main(String args()) { //call method return_array that returns array String() str_Array = return_Array(); System.out.println('Array returned from method:' + Arrays.toString(str_Array)); } }
Výkon:
Vyššie uvedený program je príkladom vrátenia referencie poľa z metódy. Metóda ‘return_array’ je vyhlásená za pole reťazcov ‘ret_Array’ a potom ju jednoducho vráti. V hlavnej metóde je návratová hodnota z metódy return_array priradená k reťazcovému poľu a potom sa zobrazí.
Nasledujúci program poskytuje ďalší príklad vrátenia poľa z metódy. Tu použijeme celé číslo, ktoré sa používa na ukladanie vypočítaných náhodných čísel, a potom sa toto pole vráti volajúcemu.
public class Main { public static void main(String() args) { final int N = 10; // number of random elements // Create an array int() random_numbers; // call create_random method that returns an array of random numbers random_numbers = create_random(N); System.out.println('The array of random numbers:'); // display array of random numbers for (int i = 0; i number of random numbers to be generated int() random_array = new int(N); //generate random numbers and assign to array for (int i = 0; i Výkon:
Výsledky výpočtu sú niekedy nulové alebo prázdne. V takom prípade sa funkcie väčšinou vrátia na hodnotu null. Ak sú zapojené polia, je lepšie vrátiť prázdne pole namiesto null. Je to preto, lebo spôsob vrátenia poľa bude mať konzistenciu. Volajúci tiež nemusí mať špeciálny kód na spracovanie nulových hodnôt.
často kladené otázky
Otázka č. 1) Prenáša pole Java referencie?
Odpoveď: Áno. Polia sa štandardne odovzdávajú odkazom. Pri odovzdávaní poľa do funkcie jednoducho poskytneme názov poľa, ktoré sa vyhodnotí na začiatočnú adresu poľa.
Otázka 2) Prečo sa polia neprechádzajú podľa hodnoty?
Odpoveď: Polia nemožno odovzdať podľa hodnoty, pretože názov poľa, ktorý sa odovzdáva metóde, sa vyhodnotí ako odkaz.
Otázka 3) Je možné vrátiť pole v Jave?
Odpoveď: Áno, môžeme vrátiť pole v Jave. V tomto výučbe sme už uviedli príklady návratových polí.
Otázka č. 4) Môže metóda vrátiť viac hodnôt?
Odpoveď: Podľa špecifikácií nemôžu metódy Java vrátiť viac hodnôt. Môžeme však mať kruhové objazdy, ako simulovať návrat viacerých hodnôt. Napríklad, môžeme vrátiť polia, ktoré majú viac hodnôt alebo kolekcie.
Otázka č. 5) Môže mať metóda v Jave dva návratové príkazy?
Odpoveď: Nie. Java neumožňuje, aby metóda mala viac ako jednu návratovú hodnotu.
kde sú apky uložené v Androide
Záver
Java umožňuje, aby boli polia odovzdané metóde ako argument a tiež vrátené z metódy. Polia sa metóde odovzdávajú ako referencia.
Pri volaní konkrétnej metódy je odovzdaný názov poľa, ktorý ukazuje na začiatočnú adresu poľa. Podobne, keď sa pole vráti z metódy, vráti sa to referencia.
V tomto tutoriáli sme sa podrobne zaoberali vyššie uvedenými témami pomocou príkladov. V našich ďalších tutoriáloch sa budeme venovať ďalším témam o poliach v Jave.
=> Navštívte tu sériu exkluzívnych výukových programov Java.
Odporúčané čítanie
- Výukový program Java Array Length s príkladmi kódu
- Java Array - Ako tlačiť prvky poľa v Jave?
- Java Array - Deklarovať, vytvoriť a inicializovať pole v Jave
- Generické pole Java - Ako simulovať generické polia v prostredí Java?
- Výukový program Java Reflection s príkladmi
- Pole objektov v Jave: Ako vytvárať, inicializovať a používať
- Výukový program Java SWING: Kontajnery, komponenty a spracovanie udalostí
- Výukový program JAVA pre začiatočníkov: viac ako 100 praktických výučbových programov Java Video