如何在java中从函数返回多个数组

n3ipq98p  于 2023-02-28  发布在  Java
关注(0)|答案(5)|浏览(250)

在Java中,函数是否可以返回两个或多个数组
我尝试从函数正常返回两个数组,但遇到错误

1cklez4t

1cklez4t1#

下面是一个获取int[][]的简单示例:

public class MyClass {
    public static int[][] getArrays() {
        final int[] firstArray = new int[]{1, 2, 3};
        final int[] secondArray = new int[]{4, 5, 6};
        final int[][] result = new int[][]{firstArray, secondArray};
        return result;
    }
    
    public static void main(String args[]) {
      final int[][] arrays = MyClass.getArrays();
      for (int i = 0; i < arrays.length; i++) {
          for (int j = 0; j < arrays[i].length; j++) {
            System.out.println(arrays[i][j]);
          }
      }
    }
}

您也可以使用列表、集或Map执行此操作。例如:

import java.util.*;

public class MyClass {
    public static List<int[]> getArraysList() {
        final List list = new ArrayList<int[]>();
        final int[] firstArray = new int[]{1, 2, 3};
        final int[] secondArray = new int[]{4, 5, 6};
        list.add(firstArray);
        list.add(secondArray);
        return list;
    }
    
    public static void main(String args[]) {
      final List<int[]> arraysList = MyClass.getArraysList();
      for (int[] intArray : arraysList) {
          for (int i = 0; i < intArray.length; i++) {
              System.out.println(intArray[i]);
          }
      }
    }
}

或者,更简单地说:

public static List<int[]> getArraysList() {
        return 
            List.of(
                new int[]{1, 2, 3} , 
                new int[]{4, 5, 6}
            )  // Returns an unmodifiable list. 
        ;
    }
b1payxdu

b1payxdu2#

在Java中,一个函数只能返回一个值。如果要返回两个数组,则需要创建一个包含这两个数组的数组,也称为二维数组,然后返回该数组。创建一个数组的方法与创建单个数组的方法相同,但需要两组括号。例如int[][] array_stuff = new int[2][7];,其中有2个内部数组,每个数组包含7个整数。您可以使用相同的方法对它们进行索引,array_stuff[i][j]

ogq8wdun

ogq8wdun3#

在java中,一个函数只能返回一个返回值,你可以考虑把数组放入一个List或者map中,然后返回值。

ljo96ir5

ljo96ir54#

在java中返回一个以上的数组是不可能的,但是,可以接受另一个数组作为参数,并根据需要修改它,然后按原样返回另一个数组。这是返回2个数组的一种解决方法。
或者,可以返回一个双维数组,然后在调用函数中将它们分成两个不同的数组。

y4ekin9u

y4ekin9u5#

在Java中,不可能直接从一个函数返回多个数组,但是,您可以创建一个自定义类来保存多个数组,通过返回该类的对象,您可以一次返回多个数组。
示例:

public class ArrayClass{
    private int[] array1;
    private string[] array2;

    public ArrayClass(int[] array1, String[] array2) {
        this.array1 = array1;
        this.array2 = array2;
    }
    
    public int[] getArray1() {
        return array1;
    }
    
    public String[] getArray2() {
        return array2;
    }
}

现在您可以创建此类的对象并返回它。

public ArrayClass getArrays(int[] array1, string[] array2){
    return new ArrayClass(array1, array2);
}

这允许您将两个数组作为单个对象的一部分返回。

相关问题