Jav*_*per 4 java collections return
有没有办法从一个方法返回两个值....
例:
public Class Sample
{
public List<Date> returnTwoArrayList()
{
List<Date> startDate=new ArrayList<Date>();
List<Date> endDate=new ArrayList<Date>();
//So I want to Return Two values startDate and endDate ...It is Possible????
}
}
Edit:1
Run Code Online (Sandbox Code Playgroud)
我正在将此方法调用到My Service类中,在此存储StartDate和endDate数据库中,这些是两个不同的列
**StartDate endDate**
2012-12-01 2012-12-05
2012-12-01 2012-12-15
2012-12-02 2012-12-10
2012-12-20 2012-12-25
2012-12-25 2012-12-31
Run Code Online (Sandbox Code Playgroud)
Juv*_*nis 13
你无法通过一个方法调用返回独立的结构,但可以返回一个复合它们.例如,返回列表列表将是一种可能的解决方案:
public List<List<Date>> returnTwoArrayList()
{
List<Date> startDates = new ArrayList<Date>();
List<Date> endDates = new ArrayList<Date>();
List<List<Date>> result = new ArrayList<List<Date>>();
result.add(startDates);
result.add(endDates);
return result;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用get()方法稍后检索这些列表.假设你已经打过电话,List<List<Date>> twoLists = returnTwoArrayList();你可以startDate通过电话twoLists.get(0) 和类似的方式来endDate获得twoLists.get(1)
不,你不能从方法中返回两个值.
最好的方法是创建一个包含两个字段的自定义类并返回该对象.
class ObjectHolder{
private List<Date> startDate=new ArrayList<Date>();
private List<Date> endDate=new ArrayList<Date>();
<getter & setter method>
}
Run Code Online (Sandbox Code Playgroud)
而且 -
public ObjectHolder returnTwoArrayList(){
ObjectHolder oh = new ObjectHolder();
List<Date> startDate=new ArrayList<Date>();
oh.setStartDate(startDate);
List<Date> endDate=new ArrayList<Date>();
oh.setEndDate(endDate);
return oh;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12449 次 |
| 最近记录: |