java - 在不使用 ArrayList 的情况下创建具有原始数组重复元素的数组?
问题描述
我有一个Java数组。
// original array
int[] arr = {1, 2, 3, 4};
如何获得另一个数组,该数组在原始元素旁边有原始数组的重复元素n次,像这样......
// n = 2
int[] arr2 = {1, 1, 2, 2, 3, 3, 4, 4};
// n = 3
int[] arr3 = {1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4};
解决方案
您可以使用流:)
int[] result = Arrays.stream(arr)
.flatMap(x -> IntStream.range(0, n).map(e -> x))
.toArray();
因为这看起来像是一项家庭作业要求,所以您不太可能被允许使用流,所以这里有一个带有 for 循环的解决方案:
int[] result = new int[arr.length * n];
for (int i = 0 ; i < result.length ; i++) {
result[i] = arr[i / n];
}
推荐阅读
- c# - 如何禁用触摸以在 Vuforia Engine for Unity 中添加对象?
- javascript - 返回“[object Object]”的 Javascipt 错误
- wordpress - Wordpress REST API 中的自定义端点被禁止,但我已登录
- calendar - 是否可以使用图形 api 为整个团队创建日历事件
- powershell - 尝试从从 CSV 导入的 Wkst LoginIDs 获取 Dist.Name 时,Powershell -> Get-ADComputer 错误
- javascript - 正则表达式非排他组
- javascript - 你怎么能安全地格式化/圆轴标签,所以没有标签出现两次
- node.js - 有没有办法按关联属性排序?类似于 /posts?$shallow=false&$sort[user.email]=1
- html - 如何在导航栏中重新定位下拉菜单?
- sqlalchemy - 将多对多关系中的相关属性映射到它们自己的“虚拟”列