2012-01-03 69 views
1

如何創建帶有多個輸出的JAVA函數? 喜歡的東西:Java中帶有多個輸出的函數

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

您是什麼意思的多個輸出?你指的是返回值嗎?如果是這種情況,你應該創建一個新類,並把你的數組列表,int索引和其他你想要的東西放在裏面。然後修改該函數以返回您新創建的類。 – Manish 2012-01-03 10:11:44

+0

如何使用HashMap? – 2013-03-22 12:26:49

回答

1

你不能,你可以

  • 創建包裝返回對象
  • 創建多個功能
3

的Java不像Python的 - 沒有任何的元組。您必須創建一個對象並將所有輸出包裝到它中。另一種解決方案可能是某種集合,但我認爲前者意味着更好的封裝。

+0

一個小例子? – 2012-01-03 10:10:22

+0

呃,例子在這裏:http://stackoverflow.com/questions/457629/how-to-return-multiple-objects-from-a-java-method – 2012-01-03 10:11:25

1

使用一個對象作爲返回值。

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

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

你不能。

簡單的解決方案是返回一個對象數組。更強大的解決方案是創建一個用於保存響應的類,並使用getter從代碼返回的響應對象中獲取各個值。

1

您必須創建一個類,其中包含您需要的每條信息的成員變量,並返回該類的一個對象。

1

另一種方法是使用包裝集合的對象。

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

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

因爲它在可變對象上運行,所以沒有參數或返回值。

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; 
}