java - 如何在java中的通用列表中添加两个相同类型的项目列表
问题描述
我有一种方法可以接受List<?>
我想要两个列表我想在单个泛型列表中添加两个列表但我无法添加我试图创建一个泛型类型列表但它不接受。
我试过这个:
List<Object> list = new ArrayList<>();
list.add(model.getfirstlist().getItems());
list.add(model.getSecondlist().getItems());
setListData(list)
我的功能是:
public void setListData(List<?> list) {
// print list
}
getItems 具有相同的字段 ID、标题
setListData(model.getfirstlist().getItems())
// 工作正常
我的功能就像
public void setListData(List<?> list) {
// print list
}
我正在尝试在单个列表中添加两个列表并将其传递给
singlelist = ( model.getfirstlist().getItems() +
model.getSecondlist().getItems())
setListData(singlelist);
请建议我如何做到这一点。
解决方案
您可以创建一个List
包含两个列表的元素:
例如
List<Integer> listA = Arrays.asList(1,2,3,4,5);
List<Integer> listB = Arrays.asList(6,7,8,9);
List<List<Integer>> lists = Arrays.asList(listA, listB);
然后使用流 api,您可以展平您创建的列表,请尝试以下操作:
List<Object> flattenList = Stream.of(lists)
.flatMap(x -> x.stream())
.collect(Collectors.toList());
如果您不能使用流 api,您可以尝试以下方法:
List<Integer> listA = Arrays.asList(1,2,3,4,5);
List<Integer> listB = Arrays.asList(6,7,8,9);
listA.addAll(listB);
现在listA
也将包含 的项目listB
。
推荐阅读
- reactjs - “错误:无效的钩子调用。使用 useState 时只能在函数组件的主体内部调用钩子”
- c++ - 如何在 C++ 中克服这个 C4430 编译器错误?
- java - 用于 Spark 问题的 GCS 连接器 - 获取存储桶时出错
- r - 在 rgb() 中使用命名的 r 颜色,这样我就可以添加 alpha 值
- ios - SwiftUI - 多个变量在变化时会相互反应吗?
- tensorflow - 如何在keras中用占位符包装张量流图
- android - 非常奇怪的改造反应
- vim - 我想为 git commit 打开 vim,但是当我写 git commit 时总是打开 nano 编辑器。谢谢
- sql - SQL(SQLite)中字符串排序的最大值是多少?
- java - 无法获得字数?