将嵌套的ArrayList转换为List Java

我有这个方法

public List<List> ConvertReportCases (ArrayList<ArrayList> stats) 

它是一个接口实现,其中返回类型是List<List> 。 一般来说,如何从嵌套的ArrayList转换为Java中的List?

谢谢

编辑感谢您的建议,我可以使我的参数作为列表传递,但然后它将是错误的,因为调用者必须将它作为List传递,而在我的特定情况下,我可以有不同的版本(多态)来检查这个问题。

真的,不需要转换。

如果您无法触摸列表的声明,则应将方法签名更改为此。 它使用通配符 。

 public List> convertReportCases(List> stats); 

但是,最干净的方法是将方法签名更改为

 public List> convertReportCases(List> stats); 

并将列表声明为

 List> list = new ArrayList>(); for (List sublist : list) { sublist = new ArrayList(); } 

如果你使用List方法,你会没事的,不需要转换。 由于ArrayList是一个List ,实际上只对它的List方法有用,你应该没问题!

你必须遍历第一个列表并转换每个列表。 就像是:

 public List> ConvertReportCases (ArrayList> stats) { List> list = new ArrayList>(); for (List l : stats) { list.add(l); } return list; } 

由于通用协方差而出现问题。 你可以在这里找到更多。

 public List> ConvertReportCases (ArrayList> stats) { List> newList = new ArrayList>(stats.size()); for (ArrayList arrayList : stats) { newList.add(arrayList); } return newList; }