how pass return an array java
Tento výukový program vysvětlí, jak předat pole jako argument metody a jako návratovou hodnotu metody v Javě s příklady:
Metody nebo funkce se v Javě používají k rozdělení programu na menší moduly. Tyto metody jsou volány z jiných funkcí a přitom jsou data předávána do az těchto metod do volajících funkcí.
Data předaná z volající funkce volané funkci jsou ve formě argumentů nebo parametrů do funkce. Data vrácená z funkce jsou návratová hodnota.
otázky a odpovědi na kontrolu kvality pdf
=> Chcete-li vidět A-Z výukových kurzů Java zde, podívejte se sem.
Obvykle lze všechny primitivní a odvozené typy předat a vrátit z funkce. Podobně lze pole předat také metodě a vrátit se z metody.
V tomto kurzu budeme diskutovat o tom, jak předat pole jako argument metodě a vrátit pole z metody.
Co se naučíte:
Předání pole metodě v Javě
Pole lze předat jiným metodám, stejně jako předáváte argumenty primitivního datového typu. Chcete-li předat pole jako argument metodě, stačí předat název pole bez hranatých závorek. Prototyp metody by se měl shodovat, aby přijal argument typu pole.
Níže je uveden prototyp metody:
void method_name (int () array);
To znamená, že method_name přijme parametr pole typu int. Takže pokud máte int pole s názvem myarray, pak můžete volat výše uvedenou metodu následujícím způsobem:
method_name (myarray);
Výše uvedené volání předává odkaz na pole myarray na metodu ‚název_metody '. Změny provedené v myarray uvnitř metody se tedy projeví také ve volající metodě.
Na rozdíl od C / C ++ nemusíte do metody předávat parametr délky spolu s maticí, protože všechna pole Java mají vlastnost ‚délka '. Může však být vhodné předat několik prvků v případě, že je vyplněno pouze několik pozic v poli.
Následující program Java demonstruje předání pole jako parametru funkci.
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ýstup:
Ve výše uvedeném programu je pole inicializováno v hlavní funkci. Pak se volá metoda printArray, které se toto pole předá jako argument. V metodě printArray se prochází pole a každý prvek se vytiskne pomocí vylepšené smyčky for.
Vezměme si další příklad předávání polí metodám. V tomto příkladu jsme implementovali dvě třídy. Jedna třída obsahuje volací metodu main, zatímco druhá třída obsahuje metodu k nalezení maximálního prvku v poli.
Takže hlavní metoda volá metodu v jiné třídě předáním pole této metodě find_max. Metoda find_max vypočítá maximální prvek vstupního pole a vrátí jej volající funkci.
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ýstup:
Ve výše uvedeném programu jsme předali pole z jedné metody v jedné třídě do jiné metody přítomné v jiné třídě. Všimněte si, že přístup k předávání pole je stejný, ať už je metoda ve stejné třídě nebo jiné třídě.
Jak vrátit pole v Javě
Kromě všech primitivních typů, které můžete vrátit z programů Java, můžete také vrátit odkazy na pole.
Při vracení odkazu na pole z metody byste měli mít na paměti, že:
nejlepší stahovač mp3 pro Android bez reklam
- Datový typ, který vrací hodnotu, by měl být zadán jako pole příslušného datového typu.
- Vrácená hodnota z metody je odkaz na pole.
Pole se vrací z metody v případech, kdy z metody potřebujete vrátit více hodnot stejného typu. Tento přístup se stává užitečným, protože Java neumožňuje vracet více hodnot.
Následující program vrací řetězcové pole z metody.
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ýstup:
Výše uvedený program je příkladem vrácení odkazu na pole z metody. Metoda ‚return_array 'je deklarována jako pole řetězců‚ ret_Array ‘a poté ji jednoduše vrátí. V hlavní metodě je návratová hodnota z metody return_array přiřazena řetězcovému poli a poté se zobrazí.
Následující program poskytuje další příklad návratu pole z metody. Zde používáme celočíselné pole, které se používá k ukládání vypočítaných náhodných čísel, a poté se toto pole vrátí volajícímu.
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ýstup:

Někdy jsou výsledky výpočtu nulové nebo prázdné. V tomto případě funkce většinu času vrátí null. Pokud jsou zahrnuta pole, je lepší vrátit prázdné pole místo null. Je to proto, že způsob vrácení pole bude mít konzistenci. Volající také nemusí mít speciální kód pro zpracování hodnot null.
Často kladené otázky
Otázka č. 1) Prochází Java Pass Arrays by Reference?
Odpovědět: Ano. Pole jsou ve výchozím nastavení předávána odkazem. Při předávání pole do funkce jednoduše zadáme název pole, které se vyhodnotí na počáteční adresu pole.
Otázka 2) Proč nejsou pole předávána podle hodnoty?
Odpovědět: Pole nelze předat podle hodnoty, protože název pole, který je předán metodě, se vyhodnotí jako odkaz.
Otázka č. 3) Může být pole vráceno v Javě?
Odpovědět: Ano, můžeme vrátit pole v Javě. V tomto kurzu jsme již uvedli příklady vracejících se polí.
Otázka č. 4) Může metoda vrátit více hodnot?
Odpovědět: Podle specifikací nemohou metody Java vrátit více hodnot. Ale můžeme mít kruhové objezdy, jak simulovat návrat více hodnot. Například, můžeme vrátit pole, která mají více hodnot nebo kolekcí.
Otázka č. 5) Může mít metoda v Javě dva návratové příkazy?
Odpovědět: Ne. Java neumožňuje, aby metoda měla více než jednu návratovou hodnotu.
Závěr
Java umožňuje předání polí metodě jako argumentu a také jejich vrácení z metody. Pole se předávají metodě jako odkaz.
Při volání konkrétní metody je předán název pole, které odkazuje na počáteční adresu pole. Podobně, když je pole vráceno z metody, je to vrácená reference.
V tomto kurzu jsme podrobně diskutovali výše uvedená témata s příklady. V našich dalších cvičeních pojednáme o více tématech o polích v Javě.
=> Navštivte zde exkluzivní sérii výukových programů Java.
Doporučené čtení
- Výukový program Java Array Length s příklady kódu
- Java Array - Jak tisknout prvky pole v Javě?
- Java Array - deklarovat, vytvořit a inicializovat pole v Javě
- Generické pole Java - Jak simulovat obecná pole v Javě?
- Výukový program Java Reflection s příklady
- Pole objektů v Javě: Jak vytvářet, inicializovat a používat
- Výukový program Java SWING: Kontejner, komponenty a zpracování událostí
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video