Uma array é uma estrutura de dados que consiste em um grupo de elementos do mesmo tipo de dados, de modo que cada elemento da array pode ser identificado por um único índice ou chave de array. Os elementos da array são armazenados de forma que o endereço de qualquer um dos elementos possa ser calculado usando a localização do primeiro índice da array por meio de uma relação matemática simples. Os arrays em Java são diferentes na implementação e no uso quando comparados aos do C / C++, embora também tenham muitas semelhanças. Aqui, discutiremos como retornar um array em java.

Para retornar uma array em java, precisamos cuidar dos seguintes pontos:

Ponto-chave 1: o método que retorna a array deve ter o tipo de retorno como uma array do mesmo tipo de dados da array que está sendo retornada. O tipo de retorno pode ser o normal Integer, Double, Character, String ou objetos de classe definidos pelo usuário também.

// Method returning an String array.
int[] methodName() {...}
// Method returning a String array.
String[] methodName() {...}
// Method returning an array of objects of class named Students.
Students[] methodName() {...} 

Ponto-chave 2: os modificadores de acesso devem ser usados ​​com precisão, considerando o uso do método e a array de retorno. Declarações estáticas e não estáticas também devem ser levadas em consideração.

// Using public access modifier and static to call the method from a static class, method or block.
public static char[] methodName() {...} 

Ponto-chave 3: deve haver qualquer array variável do mesmo tipo de dados ou algo semelhante na chamada do método para lidar com o array que está sendo retornado. Por exemplo, uma array de inteiros retornada de qualquer método pode ser armazenada da seguinte maneira.

int[] storage = methodReturningArray();

Implementação:

Para entender melhor isso, podemos examinar alguns tipos diferentes de cenários em que podemos estar retornando arrayes. Aqui estaremos considerando três exemplos de cenários.

  • Caso 1: arrayes simples integradas
  • Caso 2: array de objetos
  • Caso 3:

Caso 1: retornando uma array inteira (tipo de dados integrado) em java

Qualquer array de tipo de dados embutido seja inteiro, caractere, flutuante, duplo, tudo pode ser retornado simplesmente usando instruções de retorno, tendo em mente os pontos listados acima. 

Exemplo

// Java Program to Illustrate Returning
// simple built-in arrays
 
// Importing input output classes
import java.io.*;
 
// Main class
class GFG {
 
    // Method 1
    // Main driver method
    public static void main(String[] args)
    {
        // An integer array storing the returned array
        // from the method
        int[] storage = methodReturningArray();
 
        // Printing the elements of the array
        for (int i = 0; i < storage.length; i++)
            System.out.print(storage[i] + " ");
    }
 
    // Method 2
    // Returning an integer array
    public static int[] methodReturningArray()
    {
        int[] sample = { 1, 2, 3, 4 };
 
        // Return statement of the method.
        return sample;
    }
}
Saída
1 2 3 4 

Caso 2: retornando uma array de objetos em java

Isso é feito exatamente de maneira semelhante no caso de retorno de arrayes de tipos de dados integrados.

Exemplo 

// Java Program to Illustrate Returning
// an array of objects in java
 
// Importing all input output classes
import java.io.*;
 
// Class 1
// Helper class
// Courses whose objects are returned as an array
class Courses {
 
    String name;
    int modules;
 
    // Constructor to instatiate class objects.
    public Courses(String n, int m)
    {
        // This keyword refers to current instance  itself
        this.name = n;
        this.modules = m;
    }
}
 
// Class 2
// Main class
class GFG {
 
    // Method 1
    // Main driver method
    public static void main(String[] args)
    {
        // Calling the method for returning an array of
        // objects of the Courses class.
        Courses[] sample = methodReturningArray();
 
        // Printing the returned array elements.
        for (int i = 0; i < sample.length; i++)
            System.out.print(sample[i].name + " - "
                             + sample[i].modules
                             + " modules\n");
    }
 
    // Method 2
    // Note that return type is an array
    public static Courses[] methodReturningArray()
    {
        // Declaring Array of objects of the Courses class
        Courses[] arr = new Courses[4];
 
        // Custom array of objects
        arr[0] = new Courses("Java", 31);
        arr[1] = new Courses("C++", 26);
        arr[2] = new Courses("DSA", 24);
        arr[3] = new Courses("DBMS", 12);
 
        // Statement to return an array of objects
        return arr;
    }
}
Saída
Java - 31 módulos
C++ - 26 módulos
DSA - 24 módulos
DBMS - 12 módulos

Caso 3: Retornando arrayes multidimensionais 

Pode-se dizer que os arrays multidimensionais em java são um array de arrays dentro de arrays. A forma mais simples pode ser uma array bidimensional. Eles têm seus tamanhos e declaração de acordo com seus tamanhos. Aqui, o retorno de uma array bidimensional é demonstrado abaixo, que tem uma abordagem muito semelhante às arrayes unidimensionais.

Exemplo 

// Java Program to Illustrate Returning
// Multi-dimensional Arrays
 
// Importing input output classes
import java.io.*;
 
// Main class
class GFG {
 
    // Method 1
    // Main driver method
    public static void main(String[] args)
    {
        // An integer 2D array storing the
        // returned array from the method
        int[][] storage = methodReturningArray();
 
        // Printing the elements of the array
        // using nested for loops
        for (int i = 0; i < storage.length; i++) {
            for (int j = 0; j < storage[0].length; j++)
 
                System.out.print(storage[i][j] + " ");
 
            System.out.println();
        }
    }
 
    // Method 2
    // Returning an integer array
    public static int[][] methodReturningArray()
    {
        // Custom 2D integer array
        int[][] sample
            = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
 
        // Return statement of the method
        return sample;
    }
}
Saída
1 2 3 
4 5 6 
7 8 9