java - 如何将 ArrayList 的每个元素复制 n 次?
问题描述
我必须将 ArrayList 的每个元素复制 n 次。我试图通过以下方式做到这一点:
List<String> elements = new ArrayList();
elements.add("1");
elements.add("2");
elements.add("3");
List<String> newList = new ArrayList();
for(int i = 0; i < elements.size(); i++){
newList = Collections
.nCopies(10, elements.get(i));
}
但它仅重复元素列表的最后一个元素 10 次
解决方案
你newList =
每次都重新分配,你添加到同一个。你需要使用addAll
- 不要使用原始泛型,
new ArrayList() --> new ArrayList<>()
- 你可以使用 foreach 循环
for (String element : elements)
List<String> elements = Arrays.asList("1", "2", "3")
List<String> newList = new ArrayList<>();
for (String element : elements) {
newList.addAll(Collections.nCopies(10, element));
}
// [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
使用Stream
它看起来像
List<String> newList = elements.stream()
.map(elt -> Collections.nCopies(10, elt))
.flatMap(List::stream)
.collect(Collectors.toList());
推荐阅读
- python - 您如何计算时间序列数据中的累积中位数?
- javascript - 如果列表包含任何元素,如何签入javascript?
- postgresql - 客户数据访问
- java - 为什么在 Windows 10 上为一个 Java 程序运行 2 个 Java 平台二进制文件?
- hyperledger-fabric - Hyperledger Fabric 事务需要更长的时间来提交
- python - 从 Python 连接到 SQL Server
- javascript - JS 注入的代码显示在错误的位置 - 我该如何解决?
- javascript - framework7:从 URL 中剥离工作人员 ID 后,选项卡链接损坏
- ssis - SSIS 部署错误:找不到证书“xxx”,因为它不存在或您没有权限
- css - 如何在 Angular 9 中设置 p-galleria (primeng) 的导航按钮的样式?