是否可以在Java中的一个方法中返回两个ArrayList值?

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类中,在此存储StartDateendDate数据库中,这些是两个不同的列

**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)


Sub*_*der 6

不,你不能从方法中返回两个值.

最好的方法是创建一个包含两个字段的自定义类并返回该对象.

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)