java - 投射嵌套列表> 到嵌套的 ArrayList>
问题描述
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);
}
但是有更好的方法吗?特别是,因为我已经知道这些实例实际上是ArrayList
s。
解决方案
由于List
运行时不存在的类型信息,您可以简单地转换为ArrayList
:
import java.util.ArrayList;
import java.util.List;
public class CastListList {
public static void main(final String[] args) {
final List<List<String>> strings = new ArrayList<>();
strings.add(new ArrayList<>());
strings.get(0).add("Hello World!");
final ArrayList<ArrayList<String>> arrayList = cast(strings);
System.out.println(arrayList.get(0).get(0));
}
@SuppressWarnings({ "unchecked", "rawtypes" })
private static <T> ArrayList<ArrayList<T>> cast(final List<List<T>> list) {
return (ArrayList) list;
}
}
推荐阅读
- html - 如何使悬停效果在图像的一部分上起作用
- javascript - Fetch() 为特定 URL 返回“TypeError:网络请求失败”
- javascript - 如何解决 laravel 应用程序(使用 laradock)中返回“错误无法获取 /”的 vuejs 热重载
- python - 烧瓶分页错误 - AttributeError:“列表”对象没有属性“分页”
- javascript - 移动数组中的项目
- mysql - Heroku 和 ClearDB MySQL 自动增量
- python - dask.dataframe.groupby.DataFrameGroupBy 错误
- c++ - 如何在 C++ 中复制向量
- php - 一个 Json 对象中的 MySQL 查询
- typescript - TypeScript 推断可选的泛型类型