【发布时间】:2020-10-21 11:22:36
【问题描述】:
将List<List<T>> 转换为ArrayList<ArrayList<T>> 的最佳/最佳方式是什么?
假设我有一个接口IFoo.getListOfLists(),它将给我List<List<T>>。我们还假设我知道这些List<List<T>> 实际上是ArrayList<ArrayList<T>> 的实例。
一个简单的解决方案是:
ArrayList<ArrayList<T>> result = new ArrayList<>();
for (List<T> arrayList : IFoo.getListOfLists()) {
result.add((ArrayList<T>)arrayList);
}
但是有更好的方法吗?特别是因为我已经知道实例实际上是ArrayLists。
【问题讨论】:
-
为什么首先需要
ArrayList<ArrayList<T>>? -
@NikolasCharalambidis 因为
ArrayList实现了Serializable而List没有。 -
您可能会发现这很相关。 stackoverflow.com/questions/1387954/…
-
java.util.List 的所有标准实现都已经实现了 java.io.Serializable。如果您确定它是其中之一,则可以安全地投射。
-
Serializable 只是我使用的接口的一个约束。对于这个特定的用例,我真的不需要它。但感谢您提供的信息。
标签: java list arraylist casting