我需要制定一個方法,可以。如何在java中返回2個ArrayLists
我看過一些答案,有幾個選項想出了:
return Pair(arrList 1, arrList 2);
這是更容易的選擇,但我不知道這是否會工作,我不知道如何提取從
Pair
的ArrayLists
在調用此方法嘗試進行
class
持有這兩個ArrayList
的方法。我不知道這是否會奏效,但我認爲它應該。
是否有人知道這些選項中的任何一個是否有效,或者是否有其他選項可以使用?
我需要制定一個方法,可以。如何在java中返回2個ArrayLists
我看過一些答案,有幾個選項想出了:
return Pair(arrList 1, arrList 2);
這是更容易的選擇,但我不知道這是否會工作,我不知道如何提取從Pair
的ArrayLists
在調用此方法
嘗試進行class
持有這兩個ArrayList
的方法。我不知道這是否會奏效,但我認爲它應該。
是否有人知道這些選項中的任何一個是否有效,或者是否有其他選項可以使用?
創建財產都異類列表
public Class MyClass
{
public List<> list1;
public List<> list2;
}
返回從方法的類的新對象的類。如果該列表是同性天才,則重新列出包含兩者的列表。 注意:你的兩個解決方案都是正確的,它可以正常工作,如果你正確的做對了:)
創建第三個數組列表,並將數組列表放入第三個列表列表中,並將其放入該列表中。
您可以使用java.util.Map
作爲返回類型;
示例代碼:
public Map<Integer, List> getLists() {
Map<Integer, List> listMap = new HashMap<Integer, List>();
List list1 = new ArrayList();
List list2 = new ArrayList();
// Fill your lists
listMap.put(1, list1);
listMap.put(2, list2);
return listMap;
}
// to get list from map
Map<Integer, List> lists = getLists();
List l1 = lists.get(1);
List l2 = lists.get(2);
我會繼續如何實現你提到的每種方法。
Apache Common Lang API中有一個Pair
類,它在技術上不屬於「標準」庫。你可以在http://commons.apache.org/proper/commons-lang/下載它。
Pair
的文件是here。
您可以使用它像這樣:
// in the method
public Pair<ArrayList, ArrayList> yourMethod() {
...
return ImmutablePair.of(yourArrayList1, yourArrayList2);
}
// when you call the method
Pair<ArrayList, ArrayList> pair = yourMethod();
pair.getLeft(); // gets you the first array list
pair.getRight(); // gets you the second array list
您也可以創建自己的Pair
類,這基本上是你的第二個方法是嘗試做的。
下面是this post的一個示例。
public class Pair<K, V> {
private final K element0;
private final V element1;
public static <K, V> Pair<K, V> createPair(K element0, V element1) {
return new Pair<K, V>(element0, element1);
}
public Pair(K element0, V element1) {
this.element0 = element0;
this.element1 = element1;
}
public K getElement0() {
return element0;
}
public V getElement1() {
return element1;
}
}
可以使用這樣的:
// in the method
public Pair<ArrayList, ArrayList> yourMethod() {
...
return Pair.createPair(yourArrayList1, yourArrayList2);
}
// when you call the method
Pair<ArrayList, ArrayList> pair = yourMethod();
pair.getElement0(); // gets you the first array list
pair.getElement1(); // gets you the second array list
第三種選擇是創建保持在對應所述兩個ArrayList
S的索引對元素的類。例如,如果一個ArrayList
包含姓名,第二個ArrayList
包含生日,則可以創建一個包含姓名和生日的班級。現在創建一個帶有新類的實例的單個ArrayList
。
該解決方案取決於兩個ArrayList
的數據之間的關係。如果數據與名稱和生日的例子沒有密切關係,那麼這種類型的解決方案可能不合適。
'Pair'類應該可以工作。請閱讀文檔以瞭解如何使用它。 – 4castle
@ 4castle我已經開始了第二個選項,你認爲那也可以嗎? – Eddie
第二個選項也可以,但是你基本上只是重新創建'Pair'類。 – 4castle