我需要制定一个方法,可以。如何在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