将嵌套的ArrayList转换为List Java
我有这个方法
public List<List> ConvertReportCases (ArrayList<ArrayList> stats)
它是一个接口实现,其中返回类型是List<List>
。 一般来说,如何从嵌套的ArrayList转换为Java中的List?
谢谢
编辑感谢您的建议,我可以使我的参数作为列表传递,但然后它将是错误的,因为调用者必须将它作为List传递,而在我的特定情况下,我可以有不同的版本(多态)来检查这个问题。
真的,不需要转换。
如果您无法触摸列表的声明,则应将方法签名更改为此。 它使用通配符 。
public List extends List> convertReportCases(List extends 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; }