how pass return an array java
Acest tutorial va explica cum să treceți o matrice ca argument la o metodă și ca valoare de returnare a metodei în Java cu exemple:
Metode sau funcții sunt utilizate în Java pentru a împărți programul în module mai mici. Aceste metode sunt apelate din alte funcții și, în acest timp, datele sunt transmise către și din aceste metode către funcțiile de apelare.
Datele transmise de la funcția apelantă la funcția apelată sunt sub formă de argumente sau parametri către funcție. Datele returnate de la funcție reprezintă valoarea returnată.
testarea cutiei albe și a cutiei negre cu exemplu
=> Verificați aici pentru a vedea A-Z a tutorialelor de instruire Java aici.
De obicei, toate tipurile primitive și derivate pot fi transmise și returnate din funcție. De asemenea, tablourile pot fi transmise metodei și returnate din metodă.
În acest tutorial, vom discuta despre cum să treceți matricele ca argument către o metodă și să returnați matricea din metodă.
Ce veți învăța:
- Trecerea matricei la metodă în Java
- Cum să returnați o matrice în Java
- întrebări frecvente
- Concluzie
- Lectură recomandată
Trecerea matricei la metodă în Java
Tablourile pot fi transmise către alte metode, la fel cum transmiteți argumentele tipului de date primitive. Pentru a transmite un tablou ca argument către o metodă, trebuie doar să treceți numele matricei fără paranteze pătrate. Prototipul metodei trebuie să se potrivească pentru a accepta argumentul tipului matricei.
Dat mai jos este metoda prototip:
void method_name (int () array);
Acest lucru înseamnă că method_name va accepta un parametru matrice de tip int. Deci, dacă aveți o matrice int numită myarray, atunci puteți apela metoda de mai sus după cum urmează:
method_name (myarray);
Apelul de mai sus trece referința la matricea matricei la metoda „nume_metodă”. Astfel, modificările făcute în matricea din interiorul metodei se vor reflecta și în metoda de apelare.
Spre deosebire de C / C ++, nu trebuie să treceți parametrul length împreună cu matricea la metodă, deoarece toate matricile Java au o proprietate „length”. Cu toate acestea, ar putea fi recomandabil să treceți mai multe elemente în cazul în care sunt ocupate doar câteva poziții din matrice.
Următorul program Java demonstrează trecerea unui tablou ca parametru funcției.
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); } }
Ieșire:
În programul de mai sus, o matrice este inițializată în funcția principală. Apoi se apelează metoda printArray căreia i se transmite această matrice ca argument. În metoda printArray, matricea este parcursă și fiecare element este tipărit utilizând bucla îmbunătățită pentru.
Să luăm un alt exemplu de trecere a matricelor la metode. În acest exemplu, am implementat două clase. O clasă conține metoda de apelare principală, în timp ce cealaltă clasă conține metoda de a găsi elementul maxim în matrice.
Deci, metoda principală apelează metoda într-o altă clasă prin trecerea matricei la această metodă find_max. Metoda find_max calculează elementul maxim al matricei de intrare și îl întoarce la funcția de apelare.
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)); } }
Ieșire:
În programul de mai sus, am trecut matricea de la o metodă într-o clasă la o altă metodă prezentă într-o clasă diferită. Rețineți că abordarea matricei de trecere este aceeași indiferent dacă metoda se află în aceeași clasă sau clasă diferită.
Cum să returnați o matrice în Java
În afară de toate tipurile primitive pe care le puteți returna din programele Java, puteți returna și referințe la matrice.
În timp ce întoarceți o referință la o matrice dintr-o metodă, trebuie să aveți în vedere că:
- Tipul de date care returnează valoarea trebuie specificat ca matrice a tipului de date adecvat.
- Valoarea returnată dintr-o metodă este referința la matrice.
Matricea este returnată dintr-o metodă în cazurile în care trebuie să returnați mai multe valori de același tip dintr-o metodă. Această abordare devine utilă deoarece Java nu permite returnarea mai multor valori.
cel mai bun downloader mp3 gratuit pentru pc
Următorul program returnează o matrice de șiruri dintr-o metodă.
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)); } }
Ieșire:
Programul de mai sus este un exemplu de returnare a unei referințe matrice dintr-o metodă. Metoda „return_array” este declarată o matrice de șiruri „ret_Array” și apoi o returnează pur și simplu. În metoda principală, valoarea returnată din metoda return_array este alocată matricei de șiruri și apoi afișată.
Următorul program oferă un alt exemplu de returnare a unui tablou dintr-o metodă. Aici, folosim o matrice întreagă care este utilizată pentru a stoca numerele aleatorii calculate și apoi această matrice este returnată apelantului.
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 Ieșire:
Uneori rezultatele calculului sunt nule sau goale. În acest caz, de cele mai multe ori, funcțiile revin nule. Când sunt implicate matrici, este mai bine să returnați un tablou gol în loc de nul. Acest lucru se datorează faptului că metoda de returnare a matricei va avea consistență. De asemenea, apelantul nu trebuie să aibă un cod special pentru a gestiona valorile nule.
întrebări frecvente
Q # 1) Java Pass Arrays prin referință?
Răspuns: Da. Tablourile sunt transmise implicit prin referință. În timp ce treceți matricea să funcționeze, oferim pur și simplu numele matricei care se evaluează la adresa de pornire a matricei.
Q # 2) De ce matricele nu sunt trecute prin valoare?
Răspuns: Matricele nu pot fi transmise prin valoare, deoarece numele matricei care este trecut către metodă se evaluează la o referință.
Î # 3) Poate fi returnat un array în Java?
Răspuns: Da, putem returna o matrice în Java. Am dat deja exemple de returnare a matricelor în acest tutorial.
Q # 4) Poate o metodă să returneze mai multe valori?
Răspuns: Conform specificațiilor, metodele Java nu pot returna mai multe valori. Dar putem avea modalități giratorii de a simula returnarea mai multor valori. De exemplu, putem returna matrici care au valori sau colecții multiple în acest sens.
Q # 5) Poate o metodă să aibă două instrucțiuni Return în Java?
Răspuns: Nu. Java nu permite unei metode să aibă mai multe valori de returnare.
Concluzie
Java permite matricelor să fie transmise la o metodă ca argument, precum și să fie returnate dintr-o metodă. Tablourile sunt transmise metodei ca referință.
În timp ce se apelează o anumită metodă, numele matricei care indică adresa de pornire a matricei este transmis. În mod similar, atunci când o matrice este returnată dintr-o metodă, aceasta este referința care este returnată.
În acest tutorial, am discutat în detaliu subiectele de mai sus cu exemple. În tutorialele noastre ulterioare, vom acoperi mai multe subiecte despre matrici în Java.
=> Vizitați aici pentru seria exclusivă de instruiri Java.
Lectură recomandată
- Tutorial Java Lungime matrice cu exemple de cod
- Java Array - Cum se imprimă elemente ale unui array în Java?
- Java Array - Declarați, creați și inițializați o matrice în Java
- Java Generic Array - Cum se pot simula matrici generice în Java?
- Tutorial de reflecție Java cu exemple
- Matrice de obiecte în Java: Cum se creează, se inițializează și se utilizează
- Tutorial Java SWING: Container, componente și gestionarea evenimentelor
- Tutorial JAVA pentru începători: peste 100 de cursuri video Java practice