how pass return an array java
이 튜토리얼에서는 예제를 통해 배열을 메소드에 대한 인수 및 반환 값으로 Java에서 전달하는 방법을 설명합니다.
프로그램을 더 작은 모듈로 나누기 위해 Java에서 메서드 또는 함수가 사용됩니다. 이러한 메서드는 다른 함수에서 호출되며 그렇게하는 동안 이러한 메서드에서 호출하는 함수로 데이터가 전달됩니다.
호출 함수에서 호출 된 함수로 전달되는 데이터는 함수에 대한 인수 또는 매개 변수 형식입니다. 함수에서 반환 된 데이터는 반환 값입니다.
최고의 텍스트 음성 변환 소프트웨어는 무엇입니까
=> 여기에서 Java 교육 자습서의 A-Z를 보려면 여기를 확인하십시오.
일반적으로 모든 기본 형식과 파생 형식은 함수로 전달되고 함수에서 반환 될 수 있습니다. 마찬가지로 배열도 메서드에 전달되고 메서드에서 반환 될 수 있습니다.
이 자습서에서는 배열을 인수로 메서드에 전달하고 메서드에서 배열을 반환하는 방법에 대해 설명합니다.
학습 내용 :
Java의 메서드에 배열 전달
기본 데이터 유형의 인수를 전달하는 방법과 마찬가지로 배열을 다른 메소드에 전달할 수 있습니다. 배열을 메서드에 인수로 전달하려면 대괄호없이 배열 이름 만 전달하면됩니다. 메소드 프로토 타입은 배열 유형의 인수를 허용하기 위해 일치해야합니다.
다음은 메서드 프로토 타입입니다.
void method_name (int () array);
이는 method_name이 int 유형의 배열 매개 변수를 허용 함을 의미합니다. 따라서 myarray라는 int 배열이 있으면 위의 메서드를 다음과 같이 호출 할 수 있습니다.
method_name (myarray);
위의 호출은 배열 myarray에 대한 참조를 메소드‘method_name’에 전달합니다. 따라서 메서드 내에서 myarray에 대한 변경 사항은 호출 메서드에도 반영됩니다.
C / C ++와 달리 모든 Java 배열에는 'length'속성이 있으므로 배열과 함께 length 매개 변수를 메서드에 전달할 필요가 없습니다. 그러나 배열의 일부 위치 만 채워지는 경우 여러 요소를 전달하는 것이 좋습니다.
다음 Java 프로그램은 배열을 매개 변수로 함수에 전달하는 방법을 보여줍니다.
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); } }
산출:
위의 프로그램에서 배열은 주 함수에서 초기화됩니다. 그런 다음이 배열이 인수로 전달되는 printArray 메서드가 호출됩니다. printArray 메서드에서 배열은 순회되고 각 요소는 향상된 for 루프를 사용하여 인쇄됩니다.
메소드에 배열을 전달하는 또 다른 예를 살펴 보겠습니다. 이 예에서는 두 개의 클래스를 구현했습니다. 한 클래스에는 호출 메서드 main이 포함되어 있고 다른 클래스에는 배열에서 최대 요소를 찾는 메서드가 포함되어 있습니다.
따라서 main 메소드는이 메소드 find_max에 배열을 전달하여 다른 클래스의 메소드를 호출합니다. find_max 메서드는 입력 배열의 최대 요소를 계산하여 호출 함수에 반환합니다.
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)); } }
산출:
위의 프로그램에서 우리는 한 클래스의 한 메서드에서 다른 클래스에있는 다른 메서드로 배열을 전달했습니다. 배열을 전달하는 방법은 메서드가 동일한 클래스에 있든 다른 클래스에 있든 동일합니다.
Java에서 배열을 반환하는 방법
Java 프로그램에서 리턴 할 수있는 모든 기본 유형 외에도 배열에 대한 참조를 리턴 할 수도 있습니다.
메서드에서 배열에 대한 참조를 반환하는 동안 다음 사항에 유의해야합니다.
- 값을 반환하는 데이터 유형은 적절한 데이터 유형의 배열로 지정되어야합니다.
- 메서드에서 반환 된 값은 배열에 대한 참조입니다.
메서드에서 동일한 유형의 여러 값을 반환해야하는 경우 메서드에서 배열이 반환됩니다. 이 접근 방식은 Java가 여러 값을 반환하는 것을 허용하지 않기 때문에 유용합니다.
다음 프로그램은 메서드에서 문자열 배열을 반환합니다.
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)); } }
산출:
Windows 10 용 DVD 추출 소프트웨어
위 프로그램은 메소드에서 배열 참조를 반환하는 예입니다. ‘return_array’메소드는 문자열‘ret_Array’의 배열로 선언 된 다음 단순히 반환합니다. main 메소드에서는 return_array 메소드의 반환 값이 string 형 배열에 할당 된 다음 표시됩니다.
다음 프로그램은 메서드에서 배열을 반환하는 또 다른 예를 제공합니다. 여기서는 계산 된 난수를 저장하는 데 사용되는 정수 배열을 사용하고이 배열은 호출자에게 반환됩니다.
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 산출:
때로는 계산 결과가 null이거나 비어 있습니다. 이 경우 대부분의 경우 함수는 null을 반환합니다. 배열이 관련되면 null 대신 빈 배열을 반환하는 것이 좋습니다. 이는 배열을 반환하는 방법이 일관성을 갖기 때문입니다. 또한 호출자는 null 값을 처리하기위한 특수 코드가 필요하지 않습니다.
자주 묻는 질문
Q # 1) Java는 참조로 배열을 전달합니까?
대답: 예. 배열은 기본적으로 참조로 전달됩니다. 배열을 함수에 전달하는 동안 배열의 시작 주소로 평가되는 배열의 이름을 제공합니다.
Q # 2) 왜 배열이 값으로 전달되지 않습니까?
대답: 메서드에 전달되는 배열 이름이 참조로 평가되므로 배열을 값으로 전달할 수 없습니다.
Q # 3) 배열을 Java로 반환 할 수 있습니까?
대답: 예, Java로 배열을 반환 할 수 있습니다. 우리는 이미이 튜토리얼에서 배열을 반환하는 예제를 제공했습니다.
Q # 4) 메서드가 여러 값을 반환 할 수 있습니까?
대답: 사양에 따라 Java 메서드는 여러 값을 반환 할 수 없습니다. 그러나 우리는 여러 값을 반환하는 것을 시뮬레이션하는 원형 교차로를 가질 수 있습니다. 예를 들면 그 문제에 대한 여러 값이나 컬렉션을 가진 배열을 반환 할 수 있습니다.
Q # 5) 메소드는 Java에서 두 개의 Return 문을 가질 수 있습니까?
대답: 아니요. Java에서는 메서드가 둘 이상의 반환 값을 가질 수 없습니다.
결론
Java를 사용하면 배열을 메서드에 인수로 전달할 수있을뿐만 아니라 메서드에서 반환 할 수도 있습니다. 배열은 참조로 메서드에 전달됩니다.
특정 메서드를 호출하는 동안 배열의 시작 주소를 가리키는 배열 이름이 전달됩니다. 마찬가지로 메서드에서 배열이 반환 될 때 반환되는 참조입니다.
이 자습서에서는 위의 주제를 예제와 함께 자세히 설명했습니다. 이후 튜토리얼에서는 Java 배열에 대한 더 많은 주제를 다룰 것입니다.
=> 독점적 인 Java 교육 자습서 시리즈를 보려면 여기를 방문하십시오.
추천 도서