Java中具有多个输出的函数

时间:2012-01-03 10:06:57

标签: java

如何创建具有多个输出的JAVA功能? 类似的东西:

private (ArrayList<Integer[]>, int indexes) sortObjects(ArrayList<Integer[]> arr) {
//...
}

7 个答案:

答案 0 :(得分:4)

Java不像Python - 没有元组。您必须创建一个Object并将所有输出包装到其中。另一个解决方案可能是某种类型的集合,但我认为前者意味着更好的封装。

答案 1 :(得分:2)

在某些情况下,可以使用方法参数来处理结果值。在您的情况下,结果的一部分是一个列表(可能会破坏性地更新)。因此,您可以将方法签名更改为以下格式:

private int sortObjects(ArrayList<Integer[]> input, ArrayList<Integer[]> result) {
   int res = 0;
   for (Integer[] ints : input) {
     if (condition(ints) {
       result.add(calculatedValue);
       res++
     }
   }
   return res;
}

答案 2 :(得分:1)

你不能,你可以

  • 创建包装器返回对象
  • 创建多个功能

答案 3 :(得分:1)

使用对象作为返回值。

class SortedObjects { private ArrayList<Integer[]> _first; int _indexes; ...getter/setter/ctor... }

private SortedObjects sortObjects(ArrayList<Integer[]> arr) { ... }

答案 4 :(得分:1)

你不能。

简单的解决方案是返回一个对象数组。更强大的解决方案是创建一个用于保存响应的类,并使用getter从代码返回的响应对象中获取各个值。

答案 5 :(得分:1)

您必须创建一个类,其中包含您需要的每条信息的成员变量,并返回该类的对象。

答案 6 :(得分:1)

另一种方法是使用包装集合的Object。

class SortableCollection {
    final List<Integer[]> tables = ...
    int indexes = -1;

    public void sortObjects() {
        // perform sort on tables.
        indexes = ...
    }
}

因为它在一个可变对象上运行,所以没有参数或返回值。