如何創建帶有多個輸出的JAVA函數? 喜歡的東西:Java中帶有多個輸出的函數
private (ArrayList<Integer[]>, int indexes) sortObjects(ArrayList<Integer[]> arr) {
//...
}
如何創建帶有多個輸出的JAVA函數? 喜歡的東西:Java中帶有多個輸出的函數
private (ArrayList<Integer[]>, int indexes) sortObjects(ArrayList<Integer[]> arr) {
//...
}
你不能,你可以
的Java不像Python的 - 沒有任何的元組。您必須創建一個對象並將所有輸出包裝到它中。另一種解決方案可能是某種集合,但我認爲前者意味着更好的封裝。
一個小例子? – 2012-01-03 10:10:22
呃,例子在這裏:http://stackoverflow.com/questions/457629/how-to-return-multiple-objects-from-a-java-method – 2012-01-03 10:11:25
使用一個對象作爲返回值。
class SortedObjects { private ArrayList<Integer[]> _first; int _indexes; ...getter/setter/ctor... }
private SortedObjects sortObjects(ArrayList<Integer[]> arr) { ... }
你不能。
簡單的解決方案是返回一個對象數組。更強大的解決方案是創建一個用於保存響應的類,並使用getter從代碼返回的響應對象中獲取各個值。
您必須創建一個類,其中包含您需要的每條信息的成員變量,並返回該類的一個對象。
另一種方法是使用包裝集合的對象。
class SortableCollection {
final List<Integer[]> tables = ...
int indexes = -1;
public void sortObjects() {
// perform sort on tables.
indexes = ...
}
}
因爲它在可變對象上運行,所以沒有參數或返回值。
在某些情況下,可以使用方法參數來處理結果值。在你的情況下,結果的一部分是一個列表(可能會破壞性地更新)。因此,您可以將您的方法簽名更改爲以下格式:
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;
}
您是什麼意思的多個輸出?你指的是返回值嗎?如果是這種情況,你應該創建一個新類,並把你的數組列表,int索引和其他你想要的東西放在裏面。然後修改該函數以返回您新創建的類。 – Manish 2012-01-03 10:11:44
如何使用HashMap? – 2013-03-22 12:26:49