如何创建具有多个输出的JAVA功能? 类似的东西:
private (ArrayList<Integer[]>, int indexes) sortObjects(ArrayList<Integer[]> arr) {
//...
}
答案 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 = ...
}
}
因为它在一个可变对象上运行,所以没有参数或返回值。