将嵌套的 ArrayList 转换为 Java List

red*_*nzz 4 java arraylist

我有这个方法

public List<List<Stat>> ConvertReportCases (ArrayList<ArrayList<Stat>> stats)
Run Code Online (Sandbox Code Playgroud)

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

谢谢

编辑 感谢您的建议,我可以将我的参数作为列表传递,但这样就会出错,因为调用者必须将其作为列表传递,而在我的特殊情况下,我可以有不同的版本(多态性)来检查这个问题。

Pet*_*ček 5

确实,不需要转换。

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

public List<? extends List<Stat>> convertReportCases(List<? extends List<Stat>> stats);
Run Code Online (Sandbox Code Playgroud)

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

public List<List<Stat>> convertReportCases(List<List<Stat>> stats);
Run Code Online (Sandbox Code Playgroud)

并将列表声明为

List<List<Stat>> list = new ArrayList<List<Stat>>();
for (List<Stat> sublist : list) {
    sublist = new ArrayList<Stat>();
}
Run Code Online (Sandbox Code Playgroud)

如果你使用List方法,那就没问题,不需要转换。由于ArrayListis-a Listand 实际上只对其List方法有用,所以你应该没问题!